2012-10-25 31 views
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 ".exe" D:\Result.txt >>D:\Sorted.txt 

这似乎为AVI做工精细, exe等,但我会很高兴的任何建议。

回答

1

在这里,你走的时候不带/ S选项运行

for %%x in (exe,mp3) do (
for /r C:\Dir %%a in (*.%%x) do echo %%a >>D:\Results.txt 
) 
+0

基本上我希望它通过扩展来展示,所以我们提供的样品将显示为: 'U:\ ageeg2 \我的文档\ install_flashplayer11x32ax_gtbp_chra_aih.exe' 'U:\ adwan4 \ My Documents \我的视频\ PhotoStory1.wmv' 'U:\ amcka55 \我的文档\我的音乐\ Angus.wmv' 类似的东西 – user1773475

+0

好的,所以你想按扩展名排序吗?就像显示所有的exe的,然后所有的mp3等 –

+0

是的,这正是我想要做的,抱歉的混乱。 – user1773475

0

的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 
) 
+0

主要担心我对这个是因为脚本是不是针对C:\样品(这仅仅是这样我就可以测试),但实际上是瞄准的是运行多个DIR命令可以把服务器上的用户目录相当长一段时间才能运行。我没有意识到批处理脚本实际上是多么灵活。 – user1773475

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步过程。该解决方案看起来并不像向我展示的任何选项那样优雅。谢谢你的帮助。

+0

+ +1努力去做自己,有时候这是一件难得的事:) –

相关问题