J'essaie de faire des choses pendant la phase de pré-construction d'un projet Visual Studio. Spécifiquement, j'essaie d'exécuter certaines commandes sur tous les fichiers * .resx dans le projet. Voici ce que j'ai mais cela ne fonctionne pas lorsque le chemin de fichiers / répertoires a une place en eux. Comment puis-je contourner ces espaces?
6 Réponses :
Vous pouvez utiliser Windows pour Windows - il inclut à la fois "Trouver" et " xargs " p>
Vous pouvez également installer Cygwin pour obtenir une coquille à unix-esque pleine épouse, qui est livrée avec la commande fiduté ancienne "Trouver", plus un groupe d'autres outils. Par exemple,
Et vous rendez votre construction entière dépend de l'existence de Cygwin. Pas très gentil. Inquéraux que ce soit très malade pour cette tâche.
Stick avec l'analyseur de texte de la coque
for /f "delims=|" %%a in ('dir /B /S *.resx') do echo "%%a"
Vous rencontrez une utilisation par inadvertance du délimiteur d'espace par défaut. Vous pouvez résoudre ce problème en réinitialisant les Delims comme SO:
for /f "delims=" %%a in ('dir /B /S *.resx') do echo "%%a"
Vous savez que pour code> peut également exécuter récursivement sur des répertoires?
for /r %%x in (*.resx) do echo "%%x"
Cela ressemble à la solution la plus propre. Je savais qu'il devait y avoir un tour. Je suis tellement habitué à * Nix Scrips où les choses sont tellement plus faciles. Merci à tous pour les informations.
Eh bien, il n'est guère plus convolué que de trouver / xargs, IMHO.
Pour générer une liste de fichiers simple de tous les fichiers pertinents pour le traitement ultérieur
@echo create a results file⦠if exist results.txt (del results.txt) echo. >NUL 2>results.txt @echo minimal recursive subdirectory search for filespec... dir /s /a /b "*.resx" >>results.txt
Dupliqué possible de Itéréter tous les fichiers d'un répertoire à l'aide d'un " Pour 'Loop