Script débutant
Astronaute15
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
peperonie06 Messages postés 236 Date d'inscription Statut Membre Dernière intervention -
peperonie06 Messages postés 236 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je chercher à créer un script pour mesurer l'arborescence de mes répertoires sur un lecteur.
En gros, je voudrais qu'il me liste l'ensemble des répertoires d'un chemin donné (ex D:\Logiciels) et que le script vérifie si dans ces répertoires il y a la présence de sous répertoires donnés (par exemple, dans D:\Logiciels > liste logiciels sous forme de répertoires > Dans chaque répertoire "logiciel" s'il y a la présence de sous répertoire comme contrat, setup, etc..)
Je ne suis pas vraiment encore à l'aise avec PowerShell.
J'ai commencé par cela:
Get-ChildItem -Path "D:Logiciels\Applications"
Mais ensuite je ne sais pas trop... Il faudra ajouter un New-Item si l'Item n'est pas trouvé...
Je vous remercie pour votre aide
Je chercher à créer un script pour mesurer l'arborescence de mes répertoires sur un lecteur.
En gros, je voudrais qu'il me liste l'ensemble des répertoires d'un chemin donné (ex D:\Logiciels) et que le script vérifie si dans ces répertoires il y a la présence de sous répertoires donnés (par exemple, dans D:\Logiciels > liste logiciels sous forme de répertoires > Dans chaque répertoire "logiciel" s'il y a la présence de sous répertoire comme contrat, setup, etc..)
Je ne suis pas vraiment encore à l'aise avec PowerShell.
J'ai commencé par cela:
Get-ChildItem -Path "D:Logiciels\Applications"
Mais ensuite je ne sais pas trop... Il faudra ajouter un New-Item si l'Item n'est pas trouvé...
Je vous remercie pour votre aide
A voir également:
- Script débutant
- Script vidéo youtube - Guide
- Logiciel de programmation pour débutant - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Logiciel montage vidéo débutant - Guide
9 réponses
Bonsoir,
J'ai testé pour voir ce code en modifiant les répertoires destinés.
Il fonctionne.
Si je comprends bien ta demande, tu veux maintenant que ton script analyse le résultat de la commande qui vérifie la présence des sous répertoires, et te créer le sous répertoire manquant, le cas échéant. Vu ton code, tu sembles te baser sur le nom des répertoires et sous répertoires.
Pour cela il te faudrait un truc (à poser par écrit avant de le coder):
Si présence des sous répertoires dans les répertoires, ok.
Si manquement d'un sous répertoire, créer le sous répertoire manquant en fonction des noms de sous répertoires trouvés.
La base du scripting, c'est de connaitre les commandes. Ensuite, on élargit les commandes. Powershell étant orienté objet, il est tout à fait adapté pour ton script.
Bon courage, ce n'est pas toujours facile de débuter en scripting powershell.
J'ai testé pour voir ce code en modifiant les répertoires destinés.
Il fonctionne.
Si je comprends bien ta demande, tu veux maintenant que ton script analyse le résultat de la commande qui vérifie la présence des sous répertoires, et te créer le sous répertoire manquant, le cas échéant. Vu ton code, tu sembles te baser sur le nom des répertoires et sous répertoires.
Pour cela il te faudrait un truc (à poser par écrit avant de le coder):
Si présence des sous répertoires dans les répertoires, ok.
Si manquement d'un sous répertoire, créer le sous répertoire manquant en fonction des noms de sous répertoires trouvés.
La base du scripting, c'est de connaitre les commandes. Ensuite, on élargit les commandes. Powershell étant orienté objet, il est tout à fait adapté pour ton script.
Bon courage, ce n'est pas toujours facile de débuter en scripting powershell.
j'ai pas tout saisi dsl
mais si fais un New-item après ton if
(New-Item -Path $i -Name "setup" -ItemType "directory")
ça ne suffit pas?
mais si fais un New-item après ton if
(New-Item -Path $i -Name "setup" -ItemType "directory")
ça ne suffit pas?
salut
je n'ai pas tout compris à ton exemple
mais essaye:
Get-ChildItem -Path "D:Logiciels\Applications" -Recurse
peut être c'est ça que tu cherches
je n'ai pas tout compris à ton exemple
mais essaye:
Get-ChildItem -Path "D:Logiciels\Applications" -Recurse
peut être c'est ça que tu cherches
Bonjour,
Merci pour ta réponse peperonie06.
J'ai fait cela:
Get-ChildItem -Recurse -Directory en me placant dans D:\Logiciels\Applications
Maintenant, je souhaiterais boucler avec un Foreach pour que, si en listant les répertoires et sous répertoires dans D:\Logiciels\Applications le script s'aperçoit qu'il manque un sous répertoire va le créer automatiquement.
Je précise que les sous répertoires seront toujours les mêmes (par exemple: Setup; Contrat;Maintenance)
Donc si en listant tous les logiciels il se rend compte qu'il manque un sous-répertoire dans un des répertoires logiciel, hop, il le créer.
Mais je suis mal à l'aise avec les boucles...
Merci pour ta réponse peperonie06.
J'ai fait cela:
Get-ChildItem -Recurse -Directory en me placant dans D:\Logiciels\Applications
Maintenant, je souhaiterais boucler avec un Foreach pour que, si en listant les répertoires et sous répertoires dans D:\Logiciels\Applications le script s'aperçoit qu'il manque un sous répertoire va le créer automatiquement.
Je précise que les sous répertoires seront toujours les mêmes (par exemple: Setup; Contrat;Maintenance)
Donc si en listant tous les logiciels il se rend compte qu'il manque un sous-répertoire dans un des répertoires logiciel, hop, il le créer.
Mais je suis mal à l'aise avec les boucles...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sans essayer et sans tout te donner, voici un début de code à peaufiner
$directory = Get-ChildItem -Path "D:Logiciels\Applications" -Recurse
foreach ($i in $directory)
{
New-Item -Path $i -Name "setup" -ItemType "directory"
}
J'ai fait cela:
$directory = (Get-ChildItem -Path 'D:\Informatique\Applications').FullName
$comparaison = (Get-ChildItem 'D:\Informatique\Applications\Techlib').Name
foreach ($i in $directory)
{
$directorylog = $i
echo "Dossier $directorylog"
$acomparer = (Get-ChildItem -Path $i -Directory).name
if (!(Compare-Object $comparaison $acomparer -Property Name)){
echo OK
}
else{
echo NON
}
Maintenant, j'aimerais pouvoir récupérer les infos, et qu'enfin le sous répertoire manquant soit créer si non créé.
Je coince un peu....
$directory = (Get-ChildItem -Path 'D:\Informatique\Applications').FullName
$comparaison = (Get-ChildItem 'D:\Informatique\Applications\Techlib').Name
foreach ($i in $directory)
{
$directorylog = $i
echo "Dossier $directorylog"
$acomparer = (Get-ChildItem -Path $i -Directory).name
if (!(Compare-Object $comparaison $acomparer -Property Name)){
echo OK
}
else{
echo NON
}
Maintenant, j'aimerais pouvoir récupérer les infos, et qu'enfin le sous répertoire manquant soit créer si non créé.
Je coince un peu....