Buscando archivos dentro de una carpeta específica


1

Hola, tengo una pregunta sobre la búsqueda de archivos con un archivo por lotes.
Tengo el siguiente archivo por lotes:

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

echo %arg1% %arg2% %arg3%

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

El diseño de mis carpetas es:

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

Cada vez que ejecuto el archivo por lotes con esta entrada:

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

Me sale el siguiente resultado:

"C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"
C:\Batch Examples\TestDir\"jquery.js"
C:\Batch Examples\TestDir\1702\"jquery.js"
C:\Batch Examples\TestDir\1704\"jquery.js"

¿Por qué se C:\Batch Examples\TestDir\"jquery.js"muestra en el resultado?
No hay un archivo jquery dentro del directorio TestDir.

La salida deseada que quiero es:

jquery.js
jquery.js

Alguien me puede explicar lo que estoy haciendo mal?

Respuestas:


2

Tu culpa es usar un valor fijo para arg3. For /Riterará las (sub) carpetas a partir de arg1 aplicando "jquery.js" para cada carpeta, no evalúa.

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

Debería regresar:

C:\Batch Examples\TestDir\1702\jquery.js
C:\Batch Examples\TestDir\1704\jquery.js
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.