Lot de script avec une boucle for et un tuyau
Je voudrais que tous les fichiers csv dans un répertoire dont le nom de fichier ne contient pas le mot "résumé". À l'intérieur de l'invite de commande je peux taper la commande suivante
dir /b my_dir\*.csv | find /V "summary"
Lorsque j'essaie de transférer la commande ci-dessus dans un fichier de commandes je rencontre un problème en ce que le tuyau de commande n'est pas prise en charge dans la boucle for. Ce n'est que je ne peut pas faire ce qui suit
FOR /f %%A in ('dir /b my_dir\*.csv | find /V "summary"') do (
rem want to do something here
)
Quelqu'un peut-il jeter un peu de lumière pour moi sur la façon de résoudre le problème ci-dessus?
Merci d'avance!
- il n'y a pas
for /f
dans le DOS. cmd.exe et le DOS sont des choses complètement différentes
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour échapper à la
|
caractère pour empêcher qu'elle soit interprétée à l'époque de l'analyse de la boucle de commande. Utilisation^
échapper:Une fois échappé, le
|
devient une partie de la'
chaîne délimitée par des. C'est seulement interprété comme un symbole spécial lorsque cette chaîne est analysée séparément à partir de la boucle, comme un "sous-commande", en fonction de la syntaxe. Et ce qui est fait après l'analyse de la boucle.find:
/V": Aucun fichier ou répertoire de trouver:summary': No such file or directory
my_dir\*.csv
contenir d'espaces? Si oui, est-il entouré de guillemets doubles? Bien que cela n'aurait guère de produire ce message d'erreur.Si vous obtenez le problème que Gilbeg ai "trouver: /V": Aucun fichier ou répertoire" alors il est plus probable que vous avez cygwin, ou similaire, dans votre chemin d'accès et le fichier de commandes n'est pas à l'aide de la Windows la commande rechercher. Si vous modifiez votre script à utiliser le chemin absolu de la Windows trouver l'erreur s'en aller:
Vous pouvez aussi intégrer une chaîne de caractères entre guillemets à l'intérieur des guillemets simples de la chaîne, comme dans:
ont un look à Windows PowerShell. Pas que je n'ai jamais utilisé moi-même, de l'esprit.