Actualmente estamos convirtiendo programadores. Actualmente puedo realizar transferencias de archivos usando comodines y luego, en un proceso posterior, puedo obtener lo que se movió y leerlo para obtener el nombre del archivo que se movió con el comodín. Ya no podemos hacer esto con el nuevo programador para obtener el nombre del proceso de publicación.
La carpeta debe tener solo 1 archivo después de la transferencia con ese nombre, por lo que, por ejemplo, la carpeta "C:\Files\" podría tener:
Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt
Si quiero obtener el nombre de archivo "Documento 1079475.pdf" de la lista y ponerlo en una variable, ¿cómo lo haría con secuencias de comandos por lotes en Windows sabiendo solo "Documento*.pdf"?
He probado los siguientes comandos:
dir "%homedrive%\Files\Document*.pdf" > temp.txt
set /p VAR=<temp.txt
echo %VAR%
Sin embargo, al ejecutar la primera línea se regresa al archivo:
Volume in drive C is OSDisk
Volume Serial Number is D841-0924
Directory of C:\Files
08/01/2016 10:05 PM 128,657 Document 1079475.pdf
1 File(s) 128,657 bytes
0 Dir(s) 63,461,928,960 bytes free
Entonces la variable VAR regresa
Volume in drive C is OSDisk
Respuesta1
Si estás haciendo búsquedas específicas y haces un directorio sin encabezados y solo para archivos como:
dir /b /A:A "%homedrive%\Files\Document*.pdf" > temp.txt
El mismo comando que probó funcionará y le dará solo el nombre del archivo (y una nueva línea).
dir /?
le dará otras opciones que pueden ser útiles