【发布时间】:2020-07-12 11:15:27
【问题描述】:
编写一个名为 EX4.BAT 的批处理程序,它列出了在 C: 驱动器的根目录及其子目录中符合以下任何条件的所有文件:
a) 扩展名为 .COM 且文件名中有 4 个字母的文件。例如chcp.com、mode.com等
b) .EXE 第二个字母为 I 的文件,例如 WINHELP.EXE DIAGS.EXE 等。
确保输出不会太快向上滚动屏幕。
在 a) 和 b) 部分之间放置 pause 命令
我尝试了以下方法:
cd\ Rem to return to the root folder of C
dir ????.com /b/s Rem COM files with 4 letters
pause Rem to pause the screen
dir ?I*.exe /s Rem search EXE files whose 2nd letter is I
对于 a) 部分,这样做也接受数字,我必须确保它只接受字母。我尝试使用正则表达式,但没有成功。
【问题讨论】:
-
旁注:您不能像这样将
rem放在同一行。您可以使用& rem或使用其他一些技巧explained here,例如%= my comment =%。 -
提示1:通配符
?表示“零个或一个字符”,所以x.com也会被列出。提示2:dir无法区分字母和数字。您需要过滤输出(请参阅findstr /?)提示3:请参阅dir /?并注意/p参数。 -
确保输出不会太快向上滚动屏幕。试试ss64.com/nt/more.html,类似
dir ?I*.exe /s | more -
@JosefZ:
dir /p也是如此。 -
我建议,如果您的问题是“文件名中的 4 个字母”,它表示字符,而不是专门的字母字符!
标签: windows batch-file wildcard