command line - todos - Cómo obtener una lista de subcarpetas y sus archivos, ordenados por nombres de carpeta
parametros del cmd (6)
¿Puedo usar dir
-línea de comando para obtener una lista de subcarpetas y sus archivos, ordenados por nombres de carpetas, y no solo nombres de archivos?
utilizando
dir / s / b / o: gn> f.txt
Primero obtengo todas las subcarpetas y solo luego todos los archivos secundarios, por ejemplo:
d:/root0/root1/folderA
d:/root0/root1/folderB
d:/root0/root1/file00.txt
d:/root0/root1/file01.txt
d:/root0/root1/folderA/fileA00.txt
d:/root0/root1/folderA/fileA01.txt
d:/root0/root1/folderB/fileB00.txt
d:/root0/root1/folderB/fileB01.txt
Pero quiero obtener ...
d:/root0/root1/file00.txt
d:/root0/root1/file01.txt
d:/root0/root1/folderA
d:/root0/root1/folderA/fileA00.txt
d:/root0/root1/folderA/fileA01.txt
d:/root0/root1/folderB
d:/root0/root1/folderB/fileB00.txt
d:/root0/root1/folderB/fileB01.txt
["archivo00.txt" y "archivo01.txt" también pueden estar al final de la lista]
Gracias,
Atara
crea un archivo vbs y copia todo el código a continuación. Cambia la ubicación del directorio a donde quieras.
Dim fso
Dim ObjOutFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjOutFile = fso.CreateTextFile("OutputFiles.csv")
ObjOutFile.WriteLine("Type,File Name,File Path")
GetFiles("YOUR LOCATION")
ObjOutFile.Close
WScript.Echo("Completed")
Function GetFiles(FolderName)
On Error Resume Next
Dim ObjFolder
Dim ObjSubFolders
Dim ObjSubFolder
Dim ObjFiles
Dim ObjFile
Set ObjFolder = fso.GetFolder(FolderName)
Set ObjFiles = ObjFolder.Files
For Each ObjFile In ObjFiles
ObjOutFile.WriteLine("File," & ObjFile.Name & "," & ObjFile.Path)
Next
Set ObjSubFolders = ObjFolder.SubFolders
For Each ObjFolder In ObjSubFolders
ObjOutFile.WriteLine("Folder," & ObjFolder.Name & "," & ObjFolder.Path)
GetFiles(ObjFolder.Path)
Next
End Function
Guarde el código como vbs y ejecútelo. obtendrá una lista en ese directorio
¿Qué le parece usar sort
?
dir /b /s | sort
Aquí hay un ejemplo que probé con:
dir /s /b /o:gn
d:/root0
d:/root0/root1
d:/root0/root1/folderA
d:/root0/root1/folderB
d:/root0/root1/file00.txt
d:/root0/root1/file01.txt
d:/root0/root1/folderA/fileA00.txt
d:/root0/root1/folderA/fileA01.txt
d:/root0/root1/folderB/fileB00.txt
d:/root0/root1/folderB/fileB01.txt
dir /s /b | sort
d:/root0
d:/root0/root1
d:/root0/root1/file00.txt
d:/root0/root1/file01.txt
d:/root0/root1/folderA
d:/root0/root1/folderA/fileA00.txt
d:/root0/root1/folderA/fileA01.txt
d:/root0/root1/folderB
d:/root0/root1/folderB/fileB00.txt
d:/root0/root1/folderB/fileB01.txt
Para obtener directorios, use el parámetro /A:D
:
dir /a:d /s /b | sort
El comando para poner la lista de todos los archivos y carpetas en un archivo de texto es el siguiente:
Ej: dir / b / s | ordenar> ListOfFilesFolders.txt
En el símbolo del sistema, vaya al directorio principal para el que desea la lista ... y escriba el comando árbol / f
Hej hombre, ¿por qué estás usando esto?
dir / s / b / o: gn> f.txt (erróneo)
¿No sabes qué es esa ''g'' en ''/ o''?
Mira esto: http://www.computerhope.com/dirhlp.htm o dir /? para dir ayuda
Deberías usar esto en su lugar:
dir / s / b / o: n> f.txt (derecha)
dir /b /ad /s *.*
cumplirá con su requisito.