我希望能够使用DOS而不是gui界面在Windows机器上搜索文件。例如,在Linux上,我使用:
找到。 -name" *。c" -exec grep -Hn" sqlcommand" {} \;有没有与ms-dos类似的东西?
感谢。
答案 0 :(得分:3)
在使用Unix系统很长时间后,我不得不在Windows上制作一些脚本。
对于严肃的脚本,Powershell是您应该使用的工具。
您可以使用powershell find string in file
等关键字搜索互联网,
或其他组合,你会发现很多信息。
这就是问题,像
get-childitem C:\yourdir -include *.c -recursive |Select-String -pattern sqlcommand
不会帮到你。您需要找到PowerShell IDE,学习不同的语法并尝试爱/接受新的东西。
当您想要更频繁地执行这些操作时,准备使用PowerShell进行研究,或者尝试在Windows上获得类似Unix的环境(cygwin,或更好的Windows操作)
答案 1 :(得分:2)
这需要两个DOS命令的组合:
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
和
DIR /B /O:N /W *.c
(这是上面'command'
命令中提到的FOR
按如下方式创建CMD脚本:
@ECHO OFF
FOR /F %%B IN ('DIR /B /O:N /W *.cs') DO (
findstr /I /N /C:"sqlcommand" %%B
)
OR ,只需使用此Unix命令端口中的find
命令:
http://unxutils.sourceforge.net/
或
http://sourceforge.net/projects/unxutils/
(两个链接应该是同一个项目)
答案 2 :(得分:0)
在DOS中也有一个FIND
命令,但它的工作方式与Linux shell中的find
不同。
语法:
FIND [/V] [/C] [/N] [/I] "string" [[drive:][path]filename[...]]
其中:
/V
显示所有不包含指定字符串的行。
/C
仅显示包含字符串的行数。
/N
显示带有显示行的行号。
/I
在搜索字符串时忽略字符大小写。