dir
コマンドラインを使用して、ファイル名だけでなく、フォルダー名で並べられたサブフォルダーとそのファイルのリストを取得できますか?
を使用して
dir/s/b/o:gn> f.txt
最初にすべてのサブフォルダーを取得してから、すべてのサブファイルのみを取得します、例:
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
しかし、私は取得したい-
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
[「file00.txt」と「file01.txt」もリストの最後に置くことができます]
おかげで、
アタラ
sort
を使用してはどうですか?
dir /b /s | sort
私がテストした例は次のとおりです。
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
ディレクトリを取得するには、/A:D
パラメーターを使用します。
dir /a:d /s /b | sort
Hej man、なぜこれを使っているの?
dir/s/b/o:gn> f.txt(間違っている)
「/ o」の「g」が何であるかわかりませんか?
これを確認してください: http://www.computerhope.com/dirhlp.htm またはdir /? dirヘルプ
代わりにこれを使用する必要があります。
dir/s/b/o:n> f.txt(右のもの)
dir /b /a-d /s *.*
は要件を満たします。
すべてのファイルとフォルダーのリストをテキストファイルに入れるコマンドは次のとおりです。
例:dir/b/s |ソート> ListOfFilesFolders.txt
コマンドプロンプトで、リストが必要なメインディレクトリに移動し、コマンドツリー/ fを入力します。
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
コードをvbsとして保存して実行します。そのディレクトリにリストが表示されます