2012-08-17 12 views
5

Estoy intentando crear un archivo por lotes para analizar un directorio Z: \ (sin incluir subcarpetas) que es una unidad de red mapeada para dar a todas las carpetas ese nombre incluye "COMPANY_ *" y da salida a esos nombres de carpeta con la ruta completa a un archivo de texto.Archivo por lotes para enumerar todas las carpetas en un directorio y salida a txt con

El archivo de texto se guardará en una ubicación de carpeta de programa a la que se hace referencia cuando ejecuta el programa.

Por ejemplo

Dir:

  • Z: \ Company_001
  • Z: \ def
  • Z: \ Comapny_002
  • Z: \ Company_101

texto archivo:

  • Z: \ Company_001
  • Z: \ Company_002
  • Z: \ Company_101

empecé a tener un ir, pero no sé lo que estoy haciendo y que tenga que ejecutar este lote de 10 computadoras así que no quiero causar ningún problema.

dir "Z:\" /b >d:\test.txt 
FOR /F "delims=" %%a in (test.txt) do @echo Z:\%%a>>output.txt 
del "d:\test.txt" 
start C:\Windows\System32\notepad.exe "d:\output.txt" 
pause 

Respuesta

7
cd Z:\ 
for /D %%A IN ("COMPANY_*") DO echo "Z:\%%A">>D:\output.txt 

Puede añadir una llamada a abrir el archivo con el bloc de notas, si así lo desea. Lo que tienes ahora funcionaría.

+0

que funciona. ¡Gracias! – user1607914

6

Parece que usted puede obtener las carpetas que desea sin filtrado intermedia:

dir Z:\Company_* /b /a:d >output.txt 
+1

Esta es una solución muy válida y es más limpia. La única razón por la que sugerí hacer un ciclo "para" es porque OP quería que la ruta completa se imprimiera en un archivo (lo cual es información bastante trivial cuando no hay subcarpetas involucradas) – Egor

Cuestiones relacionadas