3

小学校のユーザー ディレクトリとサブディレクトリを検索して、すべてのアプリケーション、音楽、ビデオ、およびアーカイブ ファイルを検索し、子供たちが何を隠しているかを確認しようとしました。次のような基本的な dir スクリプトを使用しています。

dir C:\Sample\*.exe, C:\Sample\*.rar, C:\Sample\*.mp3  /s /b /OE > D:\Result.txt

これにより、ユーザー名でソートされたこれらのタイプのすべてのファイルの出力が得られます。

私が知りたいのは、検索をタイプ別にソートするように変更するか、後でソートコマンドを使用してファイルの最後の文字でソートする簡単な方法があるかということです。

出力のサンプル:

U:\adwan4\My Documents\My Videos\PhotoStory1.wmv
U:\ageeg2\My Documents\install_flashplayer11x32ax_gtbp_chra_aih.exe
U:\amcka55\My Documents\My Music\Angus.wmv

次の行に沿って Find を使用してトリックを行うように見えるものを思いつきました:

Find ".exe" D:\Result.txt >>D:\Sorted.txt

これは avi や exe などで問題なく動作するように見えますが、何か提案をいただければ幸いです。

4

3 に答える 3

1

興味のある人のために、私の最初の解決策(ループがないため、より多くの入力が必要でした)は次のようになります。

ECHO Off
dir U:\*.exe, U:\*.rar, U:\*.mp3  /s /b > D:\Result.txt
Echo Applications > D:\Sorted.txt
Echo --------------------------- >>D:\Sorted.txt
Find ".exe" D:\Result.txt >>D:\Sorted.txt
Echo Music >> D:\Sorted.txt
Echo --------------------------- >>D:\Sorted.txt
Find ".mp3" D:\Result.txt >>D:\Sorted.txt
Echo --------------------------- >>D:\Sorted.txt
Find ".wma" D:\Result.txt >>D:\Sorted.txt

セットアップにはさらに多くの作業が必要で、2 ステップのプロセスです。解決策は、私に提示されたどちらのオプションよりもエレガントに見えません。ご協力いただきありがとうございます。

于 2012-10-25T13:19:34.947 に答える
1

どうぞ

for %%x in (exe,mp3) do (
for /r C:\Dir %%a in (*.%%x) do echo %%a >>D:\Results.txt
)
于 2012-10-25T08:25:13.703 に答える
0

DIR /O 並べ替えオプションは、/S オプションを指定せずに実行すると正常に機能します。ただし、/S オプションを使用すると、各ディレクトリ内の結果が個別に並べ替えられますが、結果セット全体を並べ替える必要があります。

Bali C の編集された回答は、ファイル拡張子ごとに 1 つずつ、複数の検索を個別に実行することで問題を解決します。彼は、FOR コマンドを使用してファイルを反復処理し、結果を ECHO することにしました。複数の DIR コマンドを使用する方が簡単だと思います。

>d:result.txt (
  dir /s /b C:\Sample\*.exe
  dir /s /b C:\Sample\*.rar
  dir /s /b C:\Sample\*.mp3
)

または、おそらくタイピングが少し少ない

>d:result.txt (
  for %%X in (exe rar mp3) do dir /s /b C:\Sample\*.%%X
)
于 2012-10-25T11:43:07.647 に答える