Question
Problème de syntaxe
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 8 mois #20375
par Philippe
Réponse de Philippe sur le sujet Re:Problème de syntaxe
Fred124 écrit:
de rienMerci à vous 2 pour ces précisions,
il est parfois utile d'avoir des variables intermédiaires pour la lisibilité de ton script par un autre, ou par toi dans un an ou plus !!<br><br>Message édité par: 6ratgus, à: 6/07/15 11:10je vais pouvoir condenser mes scripts
Connexion ou Créer un compte pour participer à la conversation.
- Fred
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 10 ans 8 mois #20386
par Fred
Réponse de Fred sur le sujet Re:Problème de syntaxe
Je suis d'accord, mais là c'était extrême, ça en gênait la compréhension.
Voilà ce que ça donne après quelques heures de taf : un script qui parcourt les fichiers txt de plusieurs dossiers pour les zipper au dela de x jours et de les archiver au dela de y jours.
Ces données étant contenues dans un CSV au format Arborescence,NomDossier,duréeZip;DuréeArch
Merci de ne pas démonter mon script avec vos remarques, j'en suis fier
Je suis en train de le tester.
[code:1]
clear
$DossiersCibles= Import-csv -Path 'D:\TESTS\POWERSHELL\Compression fichiers dossier\Cibles.txt' -Delimiter ';'
$DossierArchivage = \"D:\TESTS\POWERSHELL\Compression fichiers dossier\Suppression\"
#Boucle de listage des fichiers dans chacun des arborescence
foreach ($item1 in $DossiersCibles)
{
Write-Host -ForegroundColor Red `n $item1.Arborescence `n
$ListeFichiersZip = Get-ChildItem *.txt -file -Path $item1.Arborescence
Write-Host \"Liste des fichiers : $ListeFichiersZip `n\"
$ListeFichiersZipJ2 = $ListeFichiersZip | Where-object { $_.LastWriteTime -lt (get-date).addDays([int]-$($item1.Dureezip)) }
Write-Host \"Liste des fichiers à zipper : $ListeFichiersZipJ2 `n\"
$ok=0
$nok=0
#Boucle de zip des fichiers pour chacun des dossiers listés précedemment
foreach ($item2 in $ListeFichiersZipJ2)
{
Write-Host -ForegroundColor Green `n \"Nom du fichier traité : \"$item2 `n
$fileBaseName = $item2.BaseName
$Arborescence = $item1.Arborescence
$CheminFichierZip = \"$Arborescence\$fileBaseName.zip\"
$fichierAzipper = \"$($item2.DirectoryName)\$item2\"
#write-host \"& \"C:\Program Files\7-Zip\7z.exe\" a \"$CheminFichierZip\" \"$fichierAzipper\" 1>test.log *>&1 \"
& \"C:\Program Files\7-Zip\7z.exe\" a \"$CheminFichierZip\" \"$Dfile\" 1>test.log *>&1
if ($? -eq $True)
{
Write-Host \"OK - COMPRESSE\"
$ok+=1
}
else
{
$nok+=1
Write-Host -ForegroundColor Red \" ERREUR\"
}
#write-host \"Code d'erreur : $LASTEXITCODE\"
}
$totalzip = $nok+$ok
Write-Host -Foreground Cyan \"`nTotal : $ok zip effectués / $totalzip total`n\"
#Boucle d'archivage des fichiers
$listeFichiersAArchiver = Get-ChildItem *.txt -File -Path $item1.Arborescence | Where-object { $_.LastWriteTime -lt (get-date).addDays([int]-$($item1.DureeArch)) }
Write-Host -ForegroundColor Cyan \"`n Liste des fichiers à supprimer/archiver : $listeFichiersAArchiver\"
foreach ($item3 in $listeFichiersAArchiver)
{
Write-Host -ForegroundColor DarkGray \"`nCopie du fichier\"
Copy-Item \"$($item3.DirectoryName)\$item3\" -Destination \"$DossierArchivage\$($item1.Dossier)\"
if ($? -eq $true)
{
Write-Host -ForegroundColor DarkGray \"`nSuppression du fichier\"
Remove-Item \"$($item3.DirectoryName)\$item3\" -Whatif
}
}
}
[/code:1]
Voilà ce que ça donne après quelques heures de taf : un script qui parcourt les fichiers txt de plusieurs dossiers pour les zipper au dela de x jours et de les archiver au dela de y jours.
Ces données étant contenues dans un CSV au format Arborescence,NomDossier,duréeZip;DuréeArch
Merci de ne pas démonter mon script avec vos remarques, j'en suis fier
Je suis en train de le tester.
[code:1]
clear
$DossiersCibles= Import-csv -Path 'D:\TESTS\POWERSHELL\Compression fichiers dossier\Cibles.txt' -Delimiter ';'
$DossierArchivage = \"D:\TESTS\POWERSHELL\Compression fichiers dossier\Suppression\"
#Boucle de listage des fichiers dans chacun des arborescence
foreach ($item1 in $DossiersCibles)
{
Write-Host -ForegroundColor Red `n $item1.Arborescence `n
$ListeFichiersZip = Get-ChildItem *.txt -file -Path $item1.Arborescence
Write-Host \"Liste des fichiers : $ListeFichiersZip `n\"
$ListeFichiersZipJ2 = $ListeFichiersZip | Where-object { $_.LastWriteTime -lt (get-date).addDays([int]-$($item1.Dureezip)) }
Write-Host \"Liste des fichiers à zipper : $ListeFichiersZipJ2 `n\"
$ok=0
$nok=0
#Boucle de zip des fichiers pour chacun des dossiers listés précedemment
foreach ($item2 in $ListeFichiersZipJ2)
{
Write-Host -ForegroundColor Green `n \"Nom du fichier traité : \"$item2 `n
$fileBaseName = $item2.BaseName
$Arborescence = $item1.Arborescence
$CheminFichierZip = \"$Arborescence\$fileBaseName.zip\"
$fichierAzipper = \"$($item2.DirectoryName)\$item2\"
#write-host \"& \"C:\Program Files\7-Zip\7z.exe\" a \"$CheminFichierZip\" \"$fichierAzipper\" 1>test.log *>&1 \"
& \"C:\Program Files\7-Zip\7z.exe\" a \"$CheminFichierZip\" \"$Dfile\" 1>test.log *>&1
if ($? -eq $True)
{
Write-Host \"OK - COMPRESSE\"
$ok+=1
}
else
{
$nok+=1
Write-Host -ForegroundColor Red \" ERREUR\"
}
#write-host \"Code d'erreur : $LASTEXITCODE\"
}
$totalzip = $nok+$ok
Write-Host -Foreground Cyan \"`nTotal : $ok zip effectués / $totalzip total`n\"
#Boucle d'archivage des fichiers
$listeFichiersAArchiver = Get-ChildItem *.txt -File -Path $item1.Arborescence | Where-object { $_.LastWriteTime -lt (get-date).addDays([int]-$($item1.DureeArch)) }
Write-Host -ForegroundColor Cyan \"`n Liste des fichiers à supprimer/archiver : $listeFichiersAArchiver\"
foreach ($item3 in $listeFichiersAArchiver)
{
Write-Host -ForegroundColor DarkGray \"`nCopie du fichier\"
Copy-Item \"$($item3.DirectoryName)\$item3\" -Destination \"$DossierArchivage\$($item1.Dossier)\"
if ($? -eq $true)
{
Write-Host -ForegroundColor DarkGray \"`nSuppression du fichier\"
Remove-Item \"$($item3.DirectoryName)\$item3\" -Whatif
}
}
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 8 mois #20388
par Philippe
Réponse de Philippe sur le sujet Re:Problème de syntaxe
Fred124 écrit:
oh les jolies couleurs
et sinon, sais quoi $DFile ? :
[code:1]& \"C:\Program Files\7-Zip\7z.exe\" a \"$CheminFichierZip\" \"$Dfile\" 1>test.log *>&1[/code:1]
promis je regarde pas le reste du script !!!
D'accordMerci de ne pas démonter mon script avec vos remarques, j'en suis fier
oh les jolies couleurs
et sinon, sais quoi $DFile ? :
[code:1]& \"C:\Program Files\7-Zip\7z.exe\" a \"$CheminFichierZip\" \"$Dfile\" 1>test.log *>&1[/code:1]
promis je regarde pas le reste du script !!!
Connexion ou Créer un compte pour participer à la conversation.
- Fred
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 10 ans 8 mois #20398
par Fred
Réponse de Fred sur le sujet Re:Problème de syntaxe
Bien vu c'était une ancienne variable non mise à jour ! 
Ca marchait parce qu'il avait encore la variable en mémoire.
Merci.
Sinon vous utilisez quoi comme logiciel gratuit ? Pour l'instant j'ai MS WP ISE.
J'ai Idera aussi Powershell plus pro, mais pas encore creusé.
Ca marchait parce qu'il avait encore la variable en mémoire.
Merci.
Sinon vous utilisez quoi comme logiciel gratuit ? Pour l'instant j'ai MS WP ISE.
J'ai Idera aussi Powershell plus pro, mais pas encore creusé.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 10 ans 8 mois #20401
par Philippe
Réponse de Philippe sur le sujet Re:Problème de syntaxe
je reste sur ISE de base de Microsoft
j'ai eu utilisé PowerGUI mais ça m'a pas vraiment plus
je fais pas de d'interface graphique (pour le moment) alors pas besoin de soft comme powershell plus ou powershell studio (payant)
et même si j'utilise une page web en PHP qui lance mes scripts PowerShell (le tout sous IIS), ce qui permet de délégué certaines actions à des \"non admin\", en tant d'admin system mes besoin sont simple et ne demande pas de gros moyens de développements !
mes besoins de scripteur sont plus dans la recherche des commandes pour effectué des actions faite avec les interfaces graphiques de Windows !
lire ce forum (et d'autre) m'aide et parfois me donne des idées des scripts !
Aller j'arrete de raconté ma vie !
j'ai eu utilisé PowerGUI mais ça m'a pas vraiment plus
je fais pas de d'interface graphique (pour le moment) alors pas besoin de soft comme powershell plus ou powershell studio (payant)
et même si j'utilise une page web en PHP qui lance mes scripts PowerShell (le tout sous IIS), ce qui permet de délégué certaines actions à des \"non admin\", en tant d'admin system mes besoin sont simple et ne demande pas de gros moyens de développements !
mes besoins de scripteur sont plus dans la recherche des commandes pour effectué des actions faite avec les interfaces graphiques de Windows !
lire ce forum (et d'autre) m'aide et parfois me donne des idées des scripts !
Aller j'arrete de raconté ma vie !
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Problème de syntaxe