有没有一种方法可以通过使用管道的单个命令行命令来实现以下目标?
我试图通过重定向上面的“ dir”命令的输出,然后读取文件的第一行以检查是否匹配来避免创建临时文件。
答案 0 :(得分:0)
这不是一行,但是通过循环dir
命令的结果,它确实可以在没有临时文件的情况下工作。这将在批处理文件中起作用:
setlocal enableextensions
for /F %%s in ('dir /b /o:-d') do (
if "%%s"=="mk.bat" echo found & goto :eof
echo not found & goto :eof
)
稍加用力,您也可以在一行上完成该操作:
cmd /e:on /c "@(for /F %s in ('dir /b /o:-d') do @(if "%s"=="mr.bat" echo found & exit /b) & @(echo not found & exit /b ))"
请注意一些区别:
goto :eof
,因为它在此设置中将不起作用,exit /b
退出脚本(也可以在上面的脚本中使用),/e:on
,尽管您也可以使用setlocal enableextensions &
启动命令,@
禁止处理的子命令的额外输出。