Vous pouvez également le faire avec For /R [Folder] /D
:
@echo off
for /r "F:\Temp" /d %%i in (*Subs
)do echo\%%~nxi & rmdir /s /q "%%~dpnxi"
Obs.. : Pour s'assurer que le dossier à supprimer contient les chaînes de caractères \Subs
et non un autre contenant la chaîne de caractères subs
dans le nom, je recommande de faire un filtre avec la fonction | find "\Strings"
:
for...()do echo\%%~dpi%%~nxi | find /i "\Subs" && run rd ...
-
Votre batte ne supprimera les dossiers que s'ils sont trouvés dans le chemin et le nom de la base de données. \Subs
cordes, et votre lot ressemblerait à ceci :
@echo off
for /r "F:\Temp" /d %%i in (*Subs)do (
echo\%%~dpi%%~nxi | find /i "\Subs" && rd /s /q "%%~dpnxi"
)
Ce qui peut et va aider dans de nombreuses commandes serait de vous familiariser avec :
For
For /r
For /d
For loop expanding variables
-
Utilisation d'un For
boucle, vous pouvez étendre votre variable :
%~i - expands %i removing any surrounding quotes (")
%~fi - expands %i to a fully qualified path file/dir name only
%~ni - expands %i to a file/dir name only
%~xi - expands %i to a file/dir extension only
%%~nxi => expands %%~i to a file/dir name and extension
-
Use the FOR variable syntax replacement:
%~pi - expands %i to a path only
%~ni - expands %i to a file name only
%~xi - expands %i to a file extension only
-
The modifiers can be combined to get compound results:
%~pni - expands %i to a path and file name only
%~pnxi - expands %i to a path, file name and extension only
Obs . : A propos de l'utilisation %%~nxi
sur directory
nom observation note dans ss64.com
:
-
Full Stop Bug
Although Win32 will not recognise any file or directory name that begins or ends
with a '.' (period/full stop) it is possible to include a Full Stop in the middle
of a directory name and this can cause issues with FOR /D.
-
Parameter expansion will treat a Full Stop as a file extension, so for a directory
name like "Sample 2.6.4" the output of %%~nI will be truncated to "Sample 2.6" to
return the whole folder name use %%I or %%~nxI
Con for /d
tous les répertoires seront listés dans la boucle, et leurs noms de source seront dans le fichier %%~nxi
qui peut être utilisé dans le echo\%%~nxi & rmdir /s /q "%%~dpnxi"
syntaxe de la commande.