Je veux créer un fichier de commandes. Ce fichier de commandes doit rechercher dans un dossier portant le nom "Brouillon". Pour chaque sous-dossier, effectuez une recherche sur un fichier .txt "list.txt". fichier txt, puis sera exécuté une copie du dossier "Draft" dans le dossier "Ready". J'ai écrit un petit script mais j'ai quelques problèmes.
@echo off
:loop
for /d %%i in ('dir "C:\Users\ntosis\Desktop\Draft" /ad /o:d /s /b') do (
SET a=%%i
echo %a%
)
echo Folder is empty or does not exist
timeout /t 15
goto loop
Le problème dans cette petite partie du script est que, la variable "a" ne peut pas enregistrer le nom du dossier, si je change le echo %a%
en echo Hello World
le script n’imprimera qu’une fois le message et pas tant que la boucle sera exécutée. Des idées?
windows
batch
batch-file
ntosis
la source
la source
%%i
directement.Réponses:
Vous pouvez probablement le faire dans une seule ligne:
Cela concaténera tous vos fichiers list.txt en un seul list.txt dans le dossier Ready.
Assurez-vous que votre dossier Prêt n'est pas un sous-dossier de votre dossier Brouillon, sinon vous obtiendrez des lignes dupliquées.
Si vous voulez utiliser un fichier batch, n'oubliez pas de doubler votre%:
Si vous voulez copier la structure de répertoires source complète avec vos fichiers list.txt, c'est un peu différent.
la source
Donc, si j'ai bien compris la question, est-ce que je suggérerais d'utiliser
where
plutôt que dedir
?la source