J'ai un script batch qui fonctionne déjà depuis quelques mois. Le but du script est de créer un dossier basé sur le nom de fichier et de renommer le dossier en conséquence dans un certain but. Cependant, il arrête de déplacer les fichiers dans le dossier créé dans la boucle. Je l'ai testé sur une autre machine et cela fonctionnait bien, mais sur une machine particulière; ça ne marche tout simplement pas.Pourquoi un fichier batch fonctionnant avant ne fonctionne plus comme prévu sur certaines machines?
Que puis-je faire pour rendre la boucle efficace et pourquoi le lot a-t-il cessé de fonctionner (déplacement des fichiers vers le dossier) après avoir travaillé pendant plusieurs mois maintenant?
setlocal EnableDelayedExpansion
for /F %%a in ('dir "C:\Program Files\WinSCP\Unconverted" /a-d /b') do (
if not "%%~dpnxa"=="%~dpnx0" call :func "%%~a"
:func
set file=%~1
set dir=%file:~0,49%
mkdir "C:\Program Files\WinSCP\Unconverted\%dir%_fdc" 2>nul
rem ECHO "%file%"
rem ECHO "C:\Program Files\WinSCP\Unconverted\%dir%_fdc"
move /Y "C:\Program Files\WinSCP\Unconverted\%file%" "C:\Program Files\WinSCP\Unconverted\%dir%_fdc"
)
start "" "C:\Program Files\WinSCP\hide_conversion_window.exe"
Quelle est l'erreur que vous voyez? Je peux déjà voir une parenthèse) manquante dans la boucle for au début. – oldabl
Je n'ai vu aucune erreur après avoir enlevé @echo. S'il vous plaît dites-moi où le crochet manquant) est parce que je ne pouvais pas trouver où est manquant. Merci – great77
Merci, je l'ai repéré et je vous ferai savoir maintenant si cela fonctionne .... pour/F %% a ('dir' C: \ Programmes \ WinSCP \ Unconverted "/ ad/b ') do ( sinon" %% ~ dpnxa "=="% ~ dpnx0 "call: func"% % ~ a ") – great77