如何在Windows中的变量中获取命令的结果?

如何在Windows中的变量中获取命令的结果?

我希望将命令的结果作为Windows批处理脚本中的变量。可以在.bat文件中使用的解决方案是首选,但也欢迎其他常见的Windows脚本解决方案。



HUX布斯
浏览 1050回答 3
3回答

弑天下

如果必须捕获所有命令输出,则可以使用如下批处理:@ECHO OFFIF NOT "%1"=="" GOTO ADDVSET VAR=FOR /F %%I IN ('DIR *.TXT /B /O:D') DO CALL %0 %%ISET VARGOTO END:ADDVSET VAR=%VAR%!%1:END所有输出行都存储在VAR中,以“!”分隔。@John:这有什么实际用途吗?我认为您应该观看PowerShell或任何其他能够轻松执行脚本任务的编程语言(Python,Perl,PHP,Ruby)

慕莱坞森

多年来,谦逊的命令积累了一些有趣的能力:D:\> FOR /F "delims=" %i IN ('date /t') DO set today=%iD:\> echo %today%Sat 20/09/2008请注意,"delims="覆盖默认空格和制表符分隔符,以便date命令的输出一次全部吞噬。要捕获多行输出,它仍然可以基本上是单行(使用变量lf作为结果变量中的分隔符):REM NB:in a batch file, need to use %%i not %isetlocal EnableDelayedExpansionSET lf=-FOR /F "delims=" %%i IN ('dir \ /b') DO if ("!out!"=="") (set out=%%i) else (set out=!out!%lf%%%i)ECHO %out%要捕获管道表达式,请使用^|:FOR /F "delims=" %%i IN ('svn info . ^| findstr "Root:"') DO set "URL=%%i"
打开App,查看更多内容
随时随地看视频慕课网APP