Procurando por arquivos dentro de uma pasta específica

1

Olá, tenho uma pergunta sobre como localizar arquivos com um arquivo em lote.
Eu tenho o seguinte arquivo em lote:

echo off
set arg1=%1
set arg2=%2
set arg3=%3

echo %arg1% %arg2% %arg3%

for /r %arg1% %%g in (%arg3%) do echo %%g

O layout das minhas pastas é:

TEST
---- 1702
-------jquery.js
---- 1704
-------jquery.js

Sempre que eu executo o arquivo de lote com esta entrada:

test.bat "C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"

Eu recebo a seguinte saída:

"C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"
C:\Batch Examples\TestDir\"jquery.js"
C:\Batch Examples\TestDir02\"jquery.js"
C:\Batch Examples\TestDir04\"jquery.js"

Por que C:\Batch Examples\TestDir\"jquery.js" é mostrado no resultado?
Não há arquivo jquery no diretório TestDir.

A saída desejada que eu quero é:

jquery.js
jquery.js

alguém pode me explicar o que estou fazendo de errado?

    
por Rotan075 04.04.2017 / 15:11

1 resposta

2

Sua falha é usar um valor fixo para arg3. For /R irá iterar as pastas (sub) a partir de arg1 aplicando "jquery.js" para cada pasta, não avalia.

@Echo off
echo %1 %2 %3
for /r "%~1" %%g in ("%~3*") do echo %%~fg

Deve retornar:

C:\Batch Examples\TestDir02\jquery.js
C:\Batch Examples\TestDir04\jquery.js
    
por 04.04.2017 / 17:35