ENABLEDELAYEDEXPANSION et "!" dans le nom de fichier
Bonjour
J'ai créé un batch dos (XP SP3) utilisant "SETLOCAL ENABLEDELAYEDEXPANSION"
Le problème vient que lorsque je parcours un dossier contenant d'autres dossiers avec FOR /D, si le nom d'un sous-dossier contient "!" le batch plante avec l'erreur
"Le chemin d'accès spécifié est introuvable." alors qu'un simple dir le visualise sans problème...
A noter que j'ai bien ciblé le problème car si je remplace "!" par "§" dans le nom du sous-dossier le batch fonctionne sans problème.
Je suppose que cela vient de l'utilisation des variables !x! et à l'expansion retardée, mais j'en ai, hélas, besoin.
Quelqu'un a une solution ??? (mis à part renommer tous les sous-dossiers ayant un "!" évidemment !!!)
Pour info mon batch
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
@SETLOCAL ENABLEDELAYEDEXPANSION
@SETLOCAL ENABLEEXTENSIONS
FOR /D %%d IN (*) do (
cd %%d
set n=0
FOR %%f IN (*.txt) do ( set /A "n+=1" )
rem ------------------------------
FOR %%f IN (*.txt) do (
if NOT "!n!" EQU "1" ( mkdir "%%~nf" )
"C:\Program Files\ExtCba\ExtCba.exe" "%%f" "."
if NOT "!n!" EQU "1" (
move *.cba "%%~nf"
)
rem ------------------------------
)
cd ..
)
exit |
PS:quelqu'un sait il aussi pourquoi mon batch refuse les noms de variable supérieurs à 1 caractère ??? http://www.developpez.net/forums/ima...s/headbang.gif
Merci d'avance
Th