Je suis un débutant de PowerShell, et j'aimerais pouvoir écrire ceci. J'ai un fichier texte où chaque ligne fait partie d'un nom de fichier sans le chemin ou l'extension. Je voudrais un one-liner qui boucle à travers chaque ligne du fichier (avec un gc - Get-Content, droit?), Prend le contenu de la ligne, construit le chemin source (le lecteur réseau et l'extension sont statiques), construit un chemin de destination, puis copie chaque fichier. Mon contenu du fichier est comme ceci:PowerShell: lit les lignes à partir du fichier texte, construit les noms des fichiers sources et de destination, puis copie les fichiers
12345678
98765432
32145698
12365782
Et mon dossier source est un chemin UNC comme ceci:
\\server\share
Et mon dossier de destination est:
c:\temp\files
Je voudrais faire l'équivalent de cette commande DOS, en utilisant $_
comme le texte de chaque ligne du fichier:
copy \\server\share\$_.ext c:\temp\files\$_.ext
Je suis sûr que je peux utiliser gc
et $_
pour accéder à chaque ligne du fichier, et que je dois utiliser cp
pour copier les fichiers, mais je ne parviens pas à construire les noms de fichiers source et de destination.
Excellent. Merci beaucoup! @JaredPar, mon coach personnel Powershell. –
quelque chose ne va pas avec 'gc theFileName | % {cp '\\ serveur \ partage \ $ _. ext' 'C: \ temp \ fichiers'} '? Ou serait-ce court? :-) – Joey
@Johannes, je * pense * que cela fonctionnera mais j'oublie les règles d'analyse sur le remplacement au sein d'une chaîne de temps en temps et je ne savais pas si le .ext serait interprété correctement. D'où la route sûre – JaredPar