Question
Réunir plusieurs Scripts
- karaaslan
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
il y a 6 ans 9 mois #28969
par karaaslan
Réunir plusieurs Scripts a été créé par karaaslan
Bonjour,
J'ai besoin d'aide pour développe un script.
J'ai besoin de réunir plusieurs scripts en un.
Exemple de script que j'ai besoin.
Etape par étape, ça fonctionne.
[code:1]
function New-ZipFile
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Name,
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Source
)
[Reflection.Assembly]::LoadWithPartialName( \"System.IO.Compression.FileSystem\" )
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory( $Source, $Name, $compressionLevel, $false )
Get-Item $Name
}
$name1 = Get-ChildItem -path \"C:\log\copie\" -name
$CheminFichier = 'C:\log\copie\fichier_recu.txt'
#Enleve l'extension .txt et copie dans le dossier\"copie\" sans l'extention
Copy-Item -Path \"C:\log\reception\fichier_recu.txt\" –Destination ([io.path]::ChangeExtension($CheminFichier, '')) -Verbose
#création d'un dossier avec le name du fichier \"$name1\"
New-Item -Path \"C:\log\dossier\" -Name \"$name1\" -ItemType \"directory\"
#rename le fichier.txt recus en index.txt
Rename-Item -Path \"C:\log\reception\fichier_recu.txt\" -NewName \"index.txt\"
#copie du fichier index.txt dans le dossier cree avec name \"$name1\"
Copy-Item \"C:\log\reception\index.txt\" -Destination C:\log\dossier\$name1 -Recurse
#ZIP le dossier \"$name1\"
New-ZipFile -Name C:\log\copie_zip\$name1.zip -Source \"C:\log\dossier\$name1\"
[/code:1]<br><br>Message édité par: birel, à: 29/05/19 15:49
J'ai besoin d'aide pour développe un script.
J'ai besoin de réunir plusieurs scripts en un.
Exemple de script que j'ai besoin.
Etape par étape, ça fonctionne.
[code:1]
function New-ZipFile
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Name,
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Source
)
[Reflection.Assembly]::LoadWithPartialName( \"System.IO.Compression.FileSystem\" )
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory( $Source, $Name, $compressionLevel, $false )
Get-Item $Name
}
$name1 = Get-ChildItem -path \"C:\log\copie\" -name
$CheminFichier = 'C:\log\copie\fichier_recu.txt'
#Enleve l'extension .txt et copie dans le dossier\"copie\" sans l'extention
Copy-Item -Path \"C:\log\reception\fichier_recu.txt\" –Destination ([io.path]::ChangeExtension($CheminFichier, '')) -Verbose
#création d'un dossier avec le name du fichier \"$name1\"
New-Item -Path \"C:\log\dossier\" -Name \"$name1\" -ItemType \"directory\"
#rename le fichier.txt recus en index.txt
Rename-Item -Path \"C:\log\reception\fichier_recu.txt\" -NewName \"index.txt\"
#copie du fichier index.txt dans le dossier cree avec name \"$name1\"
Copy-Item \"C:\log\reception\index.txt\" -Destination C:\log\dossier\$name1 -Recurse
#ZIP le dossier \"$name1\"
New-ZipFile -Name C:\log\copie_zip\$name1.zip -Source \"C:\log\dossier\$name1\"
[/code:1]<br><br>Message édité par: birel, à: 29/05/19 15:49
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 6 ans 9 mois #28975
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Réunir plusieurs Scripts
Salut,
je n'ai pas compris ce que tu veux faire
je n'ai pas compris ce que tu veux faire
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- karaaslan
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
il y a 6 ans 9 mois #28982
par karaaslan
Réponse de karaaslan sur le sujet Re:Réunir plusieurs Scripts
Je t'explique
Je reçois un fichier X.txt, je récupérais le nom de mon fichier pour créer un dossier X
Je renomme mon fichier X.txt en index.txt
Puis je déplace mon fichier index.txt dans mon dossier X créés avec le nom de mon fichier x.Txt reçus
Enfin pour finir je zip le dossier X.
J'arrive avec différents scripts renommer, déplacement du fichier. zipper, ...
Mais, je n'arrive pas à faire l'ensemble des actions dans un script<br><br>Message édité par: birel, à: 3/06/19 14:30
Je reçois un fichier X.txt, je récupérais le nom de mon fichier pour créer un dossier X
Je renomme mon fichier X.txt en index.txt
Puis je déplace mon fichier index.txt dans mon dossier X créés avec le nom de mon fichier x.Txt reçus
Enfin pour finir je zip le dossier X.
J'arrive avec différents scripts renommer, déplacement du fichier. zipper, ...
Mais, je n'arrive pas à faire l'ensemble des actions dans un script<br><br>Message édité par: birel, à: 3/06/19 14:30
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 6 ans 9 mois #28984
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Réunir plusieurs Scripts
Essai ceci:
[code:1]
<#
Je reçois un fichier X.txt, je récupérais le nom de mon fichier pour créer un dossier X
Je renomme mon fichier X.txt en index.txt
Puis je déplace mon fichier index.txt dans mon dossier X créés avec le nom de mon fichier x.Txt reçus
Enfin pour finir je zip le dossier X.
J'arrive avec différents scripts renommer, déplacement du fichier. zipper, ...
Mais, je n'arrive pas à faire l'ensemble des actions dans un script
#>
Function Traitement{
[CmdletBinding()]
param(
#Je reçois un fichier X.txt
[string] $InputFile,
[string] $LogPath=\"c:\log\dossier\",
[string] $ZipPath='C:\log\copie_zip'
)
function New-ZipFile
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Name,
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Source
)
[Reflection.Assembly]::LoadWithPartialName( \"System.IO.Compression.FileSystem\" ) >$null
[System.IO.Compression.ZipFile]::CreateFromDirectory( $Source, $Name, 'Optimal', $false )
Get-Item $Name
}
$Verbose=$PSBoundParameters.ContainsKey('Verbose')
#Récupère des infos à partir d'un nom de fichier
$InfosInputFile=[System.IO.FileInfo]$InputFile
#je récupérais le nom de mon fichier pour créer un dossier X
$NomDeDossier=$InfosInputFile.BaseName
#création d'un dossier avec le name du fichier récupéré
New-Item -Path $LogPath -Name $NomDeDossier -ItemType \"Directory\" -verbose:$Verbose >$null
$NouveauNom='Index.txt'
#todo : A vérifier si c'est dans le même répertoire ?
$NouveauNomComplet='{0}\{1}' -F $InfosInputFile.Directory, $NouveauNom
#Je renomme mon fichier X.txt en index.txt (todo : A vérifier si c'est dans le même répertoire ?)
Rename-Item -Path $InputFile -NewName $NouveauNom -verbose:$Verbose
$NouveauNomRepertoire=\"$LogPath\$NomDeDossier\"
#Puis je déplace mon fichier index.txt dans mon dossier X créés avec
#le nom de mon fichier x.Txt reçus
Copy-Item $NouveauNomComplet -Destination $NouveauNomRepertoire -verbose:$Verbose
#Enfin pour finir je zip le dossier X.
New-ZipFile -Name \"$ZipPath\$NomDeDossier.zip\" -Source $NouveauNomRepertoire -verbose:$Verbose
}
$FichiersTest='c:\temp\PremierEssai.txt'
'test' > $FichiersTest
Remove-Item c:\temp\index.txt -ea SilentlyContinue
#dans mon cas
Traitement -InputFile $FichiersTest -LogPath 'c:\temp\Dossier' -ZipPath 'C:\temp\copie_zip' -Verbose
#dans ton cas
$Resultat=Traitement -InputFile $FichiersTest -Verbose
$Resultat
[/code:1]
Il te reste à coder la gestion d'erreur et les cas où le répertoire destination et fichier zip existe déjà.
Vérifie également les todo (questions en suspens).<br><br>Message édité par: Laurent Dardenne, à: 4/06/19 09:48
[code:1]
<#
Je reçois un fichier X.txt, je récupérais le nom de mon fichier pour créer un dossier X
Je renomme mon fichier X.txt en index.txt
Puis je déplace mon fichier index.txt dans mon dossier X créés avec le nom de mon fichier x.Txt reçus
Enfin pour finir je zip le dossier X.
J'arrive avec différents scripts renommer, déplacement du fichier. zipper, ...
Mais, je n'arrive pas à faire l'ensemble des actions dans un script
#>
Function Traitement{
[CmdletBinding()]
param(
#Je reçois un fichier X.txt
[string] $InputFile,
[string] $LogPath=\"c:\log\dossier\",
[string] $ZipPath='C:\log\copie_zip'
)
function New-ZipFile
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Name,
[Parameter(Mandatory=$true)]
[string]
[ValidateNotNullOrEmpty()]
$Source
)
[Reflection.Assembly]::LoadWithPartialName( \"System.IO.Compression.FileSystem\" ) >$null
[System.IO.Compression.ZipFile]::CreateFromDirectory( $Source, $Name, 'Optimal', $false )
Get-Item $Name
}
$Verbose=$PSBoundParameters.ContainsKey('Verbose')
#Récupère des infos à partir d'un nom de fichier
$InfosInputFile=[System.IO.FileInfo]$InputFile
#je récupérais le nom de mon fichier pour créer un dossier X
$NomDeDossier=$InfosInputFile.BaseName
#création d'un dossier avec le name du fichier récupéré
New-Item -Path $LogPath -Name $NomDeDossier -ItemType \"Directory\" -verbose:$Verbose >$null
$NouveauNom='Index.txt'
#todo : A vérifier si c'est dans le même répertoire ?
$NouveauNomComplet='{0}\{1}' -F $InfosInputFile.Directory, $NouveauNom
#Je renomme mon fichier X.txt en index.txt (todo : A vérifier si c'est dans le même répertoire ?)
Rename-Item -Path $InputFile -NewName $NouveauNom -verbose:$Verbose
$NouveauNomRepertoire=\"$LogPath\$NomDeDossier\"
#Puis je déplace mon fichier index.txt dans mon dossier X créés avec
#le nom de mon fichier x.Txt reçus
Copy-Item $NouveauNomComplet -Destination $NouveauNomRepertoire -verbose:$Verbose
#Enfin pour finir je zip le dossier X.
New-ZipFile -Name \"$ZipPath\$NomDeDossier.zip\" -Source $NouveauNomRepertoire -verbose:$Verbose
}
$FichiersTest='c:\temp\PremierEssai.txt'
'test' > $FichiersTest
Remove-Item c:\temp\index.txt -ea SilentlyContinue
#dans mon cas
Traitement -InputFile $FichiersTest -LogPath 'c:\temp\Dossier' -ZipPath 'C:\temp\copie_zip' -Verbose
#dans ton cas
$Resultat=Traitement -InputFile $FichiersTest -Verbose
$Resultat
[/code:1]
Il te reste à coder la gestion d'erreur et les cas où le répertoire destination et fichier zip existe déjà.
Vérifie également les todo (questions en suspens).<br><br>Message édité par: Laurent Dardenne, à: 4/06/19 09:48
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- karaaslan
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 13
- Remerciements reçus 0
il y a 6 ans 9 mois #28987
par karaaslan
Réponse de karaaslan sur le sujet Re:Réunir plusieurs Scripts
Bonjour,
Merci beaucoup de ton aide
Il me crée un fichier PremierEssai.txt avec le contenu text
Mais dans mon cas si un fichier X_*.txt différent reçus tout les jours avec un contenue a pas modifier
Il est possible de faire une variable avec le nom du dossier $fichiername=X_*.txt et crée un dossier avec le nom X_* ?
Puis modifier le fichier X_*.txt reçu le renommé en index.txt sans modifier le contenue
Merci d'avance de ton retour
Je suis vraiment perdu :'(
Merci beaucoup de ton aide
Il me crée un fichier PremierEssai.txt avec le contenu text
Mais dans mon cas si un fichier X_*.txt différent reçus tout les jours avec un contenue a pas modifier
Il est possible de faire une variable avec le nom du dossier $fichiername=X_*.txt et crée un dossier avec le nom X_* ?
Puis modifier le fichier X_*.txt reçu le renommé en index.txt sans modifier le contenue
Merci d'avance de ton retour
Je suis vraiment perdu :'(
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 6 ans 9 mois #28989
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Réunir plusieurs Scripts
birel écrit:

Idem, ici je ne suis pas sûr de comprendre ce que tu veux faire...
birel écrit:
birel écrit:
Ceci semble répondre à ta question, je me trompe ?
[code:1]
#je récupérais le nom de mon fichier pour créer un dossier X
$NomDeDossier=$InfosInputFile.BaseName
[/code:1]
Pour info, on propose les spécifications en une fois, pas au fur et à mesureMais dans mon cas si un fichier X_*.txt différent reçus tout les jours avec un contenue a pas modifier
Idem, ici je ne suis pas sûr de comprendre ce que tu veux faire...
birel écrit:
Faut prendre le temps de réfléchir et d'énoncer ton traitement, ici il n'y a rien de complexe.Je suis vraiment perdu
birel écrit:
Le mieux serait de partir du code que je t'ai proposé, si on mélanges les deux codes on est assuré de partir dans des incompréhensionsIl est possible de faire une variable avec le nom du dossier $fichiername=X_*.txt et crée un dossier avec le nom X_* ?
Ceci semble répondre à ta question, je me trompe ?
[code:1]
#je récupérais le nom de mon fichier pour créer un dossier X
$NomDeDossier=$InfosInputFile.BaseName
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.045 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Réunir plusieurs Scripts