Como posso executar um comando em todos os subdiretórios em um arquivo de lote?
Você pode usar for /r
para isso.
Use o seguinte arquivo em lotes:
for /r "starting_directory" %%a in (.) do (
pushd %%a
if exist icon.ico (
attrib -s -h -r desktop.ini
echo f | xcopy /h /y "%~dp0desktop.ini.txt" desktop.ini
attrib +s +h +a desktop.ini
)
popd
)
para / r - Repetir os arquivos (subpastas Recurse)
Syntax
FOR /R [[drive:]path] %%parameter IN (set) DO command
Key
drive:path
: The folder tree where the files are located.
set
: A set of one or more files. Wildcards must be used. If (set) is a period character (.) then FOR will loop through every folder.
command
: The command(s) to carry out, including any command-line parameters.%%parameter' : A replaceable parameter: in a batch file use %%G (on the command line %G)
Fonte para / r - Fazer um loop pelos arquivos (criar subpastas).
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
- para / r - Fazer um loop pelos arquivos (criar subpastas).