ディスク上のすべてのファイルを一覧表示するバッチスクリプト


2

私はすべてを1つのディスクファイルにまとめた小さなバッチファイルを作成したいと思います。コマンドはこれです:

TREE L: / F / A> List.txt

しかし、私はユーザーに処理するドライブ文字を入力してもらい、その結果が名前と現在の日付を含むファイルに入れられるようにします。例:

C:\> makelist.bat
Please, insert the drive letter: L
Done!

結果は、例えばという名前のファイルに入力しなければなりません List_2017-03-13.txt そしてデスクトップに移動

スクリプトを作成するために使用するコマンドは何ですか?


WindowsとDOSのバッチスクリプトは大きく異なります。タイトルからMS-DOSを削除
phuclv

回答:


0

次のバッチは、wmicを

  • ロケール/ユーザー設定に依存しない日付を取得する
  • 利用可能なドライブ文字のリストを取得する
  • と文字を選択するための選択

:: makelist.bat
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
set Started=%date% %time%
:: get locale/user-settings independent date
for /f "delims=." %%A in (
  'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set "DT=%%A"
Set MyDate=%DT:~0,4%-%DT:~4,2%-%DT:~6,2%

:: gather available drives
Set "Drives="
FOr /f "delims=:" %%A in (
  'Wmic logicaldisk get name^|findstr "^[A-Z]:"'
) DO Set "Drives=!Drives!%%A"

:: choose drive letter
Choice /C %Drives% /M "Select drive letter for tree"
Set /A "Inp=%Errorlevel%,Pnt=Inp-1"
IF %Inp% equ 0   Echo aborted & pause & exit /B 1
If %Inp% equ 255 Echo aborted & pause & exit /B 1
Set "Drive=!Drives:~%Pnt%,1!"

:: do the tree 
Echo %Started% Tree started
Echo Tree %Drive%:\ /F /A  "%UserProfile%\Desktop\Tree_%Drive%_%MyDate%.txt"
     Tree %Drive%:\ /F /A >"%UserProfile%\Desktop\Tree_%Drive%_%MyDate%.txt"
Echo %date% %time% done
timeout -1

サンプルダイアログ:

Select drive letter for tree [C,D,E,G,H,K,M,N,P,Q,R,T,U,V,W,X,Z]?H
2017-03-13 14:17:05,45 Tree started
Tree H:\ /F /A "C:\Users\UserName\Desktop\Tree_H_2017-03-13.txt"
2017-03-13 14:17:13,70 done

Drücken Sie eine beliebige Taste, um den Vorgang fortzusetzen...

3

tree2txt.bat:

@tree %1 / F / A > Tree_%1_%date.TxT

使用法: tree2txt X:

結果:ドライブX:\のツリーがTree_X_20170313.TxTという名前のファイルになります。

日付の出力フォーマットはあなたの地域の日付フォーマット設定(yyyy-mm-ddと他のフォーマットのもの)に依存することに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.