Sé que "dir / w" o "dir / b" muestra solo el nombre del archivo. Mientras que "dir / x" o "dir / X" muestra el formato 8.3, pero juntos muestra toda la otra información, como nombres de archivos de formato largo, fechas y tamaño.
¿es posible llamar dir
, que solo muestra los nombres de los archivos (que no muestran fechas o tamaños) y que los muestra en formato 8.3?
windows
command-line
dir
athos
fuente
fuente
Si solo desea que se muestren los nombres 8.3 y nada más, si usa "dir / -n" obtendrá el nombre 8.3 al comienzo de cada línea. Nota: separa la extensión del nombre del archivo con un espacio en lugar de un punto.
Pero puede usar el "dir / -n" dentro de un bucle for en un archivo por lotes y luego extraer una subcadena de los primeros 12 caracteres para deshacerse del resto de cada línea. P.ej:
El "skip = 7" omite las primeras 7 líneas, que no son nombres de archivo ni de directorio, y la salida del "dir / -n" se canaliza a través de dos comandos find para eliminar las dos últimas líneas producidas por "dir / -n "(el símbolo de tubería" | "debe" escaparse "mediante un" ^ ". Dado que la extracción de la subcadena se produce en un bucle for en el archivo por lotes, se necesita" setlocal EnableDelayedExpansion "y"! "debe usarse con el variable x en lugar de "%". Para el ejemplo anterior, verá el siguiente resultado al ejecutar el archivo por lotes:
fuente
abc.txt
para ver esto en acción. Luego, por diversión, cree un archivo llamadoabc.docx
.Después de jugar con esto durante una hora, se me ocurrió lo siguiente:
de dos prompt:
del archivo .BAT o .CMD:
nota: este script todavía tiene problemas con los nombres de archivo largos, pero continuará y creará un archivo de texto 8dot3 que luego se puede bombear a cualquier otro archivo por lotes.
El siguiente es mi archivo completo de prueba .Bat:
fuente
Para listar archivos en todos los subdirectorios, pruebe este:
fuente