3

我一直在尝试在小学的用户目录和子目录中搜索所有应用程序、音乐、视频和存档文件,以检查孩子们对我隐藏了什么。我一直在使用与此类似的基本目录脚本:

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

干得好

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 回答
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

ETC

需要做更多的设置工作,并且是一个 2 步过程。该解决方案看起来也不像呈现给我的任何一个选项那样优雅。谢谢你的帮助。

于 2012-10-25T13:19:34.947 回答
0

在没有 /S 选项的情况下运行 DIR /O 排序选项可以正常工作。但是,当您使用 /S 选项时,它会单独对每个目录中的结果进行排序,而您希望对整个结果集进行排序。

Bali C 的编辑答案通过单独执行多个搜索来解决问题,每个文件扩展名一个。他选择使用 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 回答