BAT - Limitation caractères
micromega
Messages postés
131
Date d'inscription
Statut
Membre
Dernière intervention
-
micromega Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
micromega Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un soucis avec un fichier ".bat" exécutant une recherche dans les lecteurs : Après avoir cherché le problème partout, j'ai enfin trouvé que le nombre de caractère est limité à la recherche. De fait, si le fichier que je recherche se retrouve dans plusieurs sous-dossiers, alors le .bat ne fonctionnera pas.
Ma question est comment je peux étendre le nombre de caractère pour que ma recherche puisse fonctionner ?
Voici le code bat :
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do (
if exist "%%i:\" set VrLetter=%%i& call :search %%i
)
goto FinBoucle
:search
for /r "%VrLetter%:\" %%j in (\TEST ICI) do if exist "%%j" rd /s /q %%j
goto :eof
:FinBoucle
Merci de vos aides !
J'ai un soucis avec un fichier ".bat" exécutant une recherche dans les lecteurs : Après avoir cherché le problème partout, j'ai enfin trouvé que le nombre de caractère est limité à la recherche. De fait, si le fichier que je recherche se retrouve dans plusieurs sous-dossiers, alors le .bat ne fonctionnera pas.
Ma question est comment je peux étendre le nombre de caractère pour que ma recherche puisse fonctionner ?
Voici le code bat :
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do (
if exist "%%i:\" set VrLetter=%%i& call :search %%i
)
goto FinBoucle
:search
for /r "%VrLetter%:\" %%j in (\TEST ICI) do if exist "%%j" rd /s /q %%j
goto :eof
:FinBoucle
Merci de vos aides !
A voir également:
- BAT - Limitation caractères
- Fichier bat - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- Caractères spéciaux mac - Guide
3 réponses
salut
J'ai pas bien compris ce que vous voulez faire .. ??
surtout sur la ligne
for /r "%VrLetter%:\" %%j in (\TEST ICI) do if exist "%%j" rd /s /q %%j
pourquoi un \ avant le mot TEST ICI ( vous pouvez l'enlever )
for /r "%VrLetter%:\" %%j in (TEST) do if exist "%%j" rd /s /q %%j
et cela fonctionne, mais je ne sais pas si vous voulez de supprimer le dossier qui se nomme TESTE ICI ou quoi exactement ?
J'ai pas bien compris ce que vous voulez faire .. ??
surtout sur la ligne
for /r "%VrLetter%:\" %%j in (\TEST ICI) do if exist "%%j" rd /s /q %%j
pourquoi un \ avant le mot TEST ICI ( vous pouvez l'enlever )
for /r "%VrLetter%:\" %%j in (TEST) do if exist "%%j" rd /s /q %%j
et cela fonctionne, mais je ne sais pas si vous voulez de supprimer le dossier qui se nomme TESTE ICI ou quoi exactement ?
Bonjour,
Merci pour la réponse.
Le "\" : je pensais qu'il en fallait un pour indiquer le dossier. Maintenant c'est corrigé. Merci.
"TEST ICI" est le nom de mon dossier test que mon fichier bat doit trouver dans l'un des lecteurs et le supprimer.
Mon problème est que cette commande ne marche pas à tous les coups : j'ai fait plusieurs tests.
J'en déduis maintenant que lorsque le chemin comporte un espace alors il ne peut pas être effacé. Exemple tout simple :
Mon dossier "TEST ICI" placé dans C:\Program Files (x86)\Nouveau dossier\TEST ICI, ne peut pas être effacé.
Même problème sur le disque D:\Nouveau dossier\TEST ICI, ne peut pas être effacé.
Alors que si je fais : D:\Nouveaudossiersansespaces\TEST ICI le dossier est bien supprimé.
J'en déduit donc que le soucis vient des espaces dans l'arborescence du dossier, mais je ne sais pas par quel manière je peux résoudre ce problème.
Si vous avez une idée ?
Merci
Merci pour la réponse.
Le "\" : je pensais qu'il en fallait un pour indiquer le dossier. Maintenant c'est corrigé. Merci.
"TEST ICI" est le nom de mon dossier test que mon fichier bat doit trouver dans l'un des lecteurs et le supprimer.
Mon problème est que cette commande ne marche pas à tous les coups : j'ai fait plusieurs tests.
J'en déduis maintenant que lorsque le chemin comporte un espace alors il ne peut pas être effacé. Exemple tout simple :
Mon dossier "TEST ICI" placé dans C:\Program Files (x86)\Nouveau dossier\TEST ICI, ne peut pas être effacé.
Même problème sur le disque D:\Nouveau dossier\TEST ICI, ne peut pas être effacé.
Alors que si je fais : D:\Nouveaudossiersansespaces\TEST ICI le dossier est bien supprimé.
J'en déduit donc que le soucis vient des espaces dans l'arborescence du dossier, mais je ne sais pas par quel manière je peux résoudre ce problème.
Si vous avez une idée ?
Merci
Re:
Cela fonctionne pour le problème d'espacement:
for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist %%j rd /s /q %%~fsj
je met %%~fsj pour les noms de chemin complet avec noms courts uniquement
j'ai créé des dossiers chacun prennent le nom TEST ICI et j'applique la dernière commande et ça marche :D
Cela fonctionne pour le problème d'espacement:
for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist %%j rd /s /q %%~fsj
je met %%~fsj pour les noms de chemin complet avec noms courts uniquement
j'ai créé des dossiers chacun prennent le nom TEST ICI et j'applique la dernière commande et ça marche :D
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do (
if exist "%%i:\" set VrLetter=%%i& call :search %%i
)
goto FinBoucle
:search
for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist "%%j" rd /s /q "%%j"
goto :eof
:FinBoucle
Cela ne fonctionne pas. Mais je pense que c'est un problème de guillemets, mais il faut trouver où...
Merci
if exist "%%i:\" set VrLetter=%%i& call :search %%i
)
goto FinBoucle
:search
for /r "%VrLetter%:\" %%j in ("TEST ICI") do if exist "%%j" rd /s /q "%%j"
goto :eof
:FinBoucle
Cela ne fonctionne pas. Mais je pense que c'est un problème de guillemets, mais il faut trouver où...
Merci