2 votos

Listar archivos específicos de un directorio

Yo no puedo lista específica de los archivos de un directorio pasado como argumento a un archivo de proceso por lotes.

El problema que estoy enfrentando es que el tubo de carácter "|" no es reconocido, la he usado para eludir la dir comando limitaciones que puede

dir /b *.avi *.mp4 *.mkv

dentro de un directorio, pero como estoy en la creación de este archivo por lotes para ejecutar después de la uTorrent, tengo que pasar el directorio como argumento.

A nivel mundial, lo que estoy tratando de hacer es convertir automáticamente los archivos descargados por uTorrent para audio AAC.

Aquí está el lote de archivos de contenido:

FOR /F "tokens=*" %%i IN ('dir %1 /b /A-D | findstr /I (avi mp4 mkv)') DO ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni_aac%%~xi" 
PAUSE

1voto

DavidPostill Puntos 30286

El pipe | carácter no es reconocido

Usted necesita para escapar de la siguiente manera:

^|

Hay algunos errores en su código:

  • Las tuberías de findstr /I (avi mp4 mkv) no funciona como findstr no funciona de esa manera. Usted no necesita findstr o de la tubería de todos modos.

  • Si lo hizo el trabajo tendrá también escapar de la ( y ).

  • "%%~di%%~pi%%~ni_aac%%~xi" , no te da el archivo de salida de la extensión .acc

Intente lo siguiente:

pushd %1
FOR /F "usebackq tokens=*" %%i IN (`dir /b *.avi *.mp4 *.mkv`) DO (
  echo ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni.aac" 
  )
PAUSE
popd

Quitar el echo si usted es feliz con la modificación de la ffmpeg comando.

^ Carácter de Escape.

Añadir el carácter de escape antes de que el comando símbolo le permite ser tratados como texto normal.

Cuando la tubería o la reorientación de cualquiera de estos caracteres debe prefijo con el carácter de escape: & \ < > ^ |

por ejemplo ^\ ^& ^| ^> ^< ^^

Fuente de las Citas, los Caracteres de Escape, los Delimitadores de Windows CMD - SS64.com


Leer Más

PAUSA

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: