为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUX布斯 2019-08-16 16:35:26
如何在Windows中的变量中获取命令的结果?我希望将命令的结果作为Windows批处理脚本中的变量。可以在.bat文件中使用的解决方案是首选,但也欢迎其他常见的Windows脚本解决方案。
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

如果必须捕获所有命令输出,则可以使用如下批处理:


@ECHO OFF

IF NOT "%1"=="" GOTO ADDV

SET VAR=

FOR /F %%I IN ('DIR *.TXT /B /O:D') DO CALL %0 %%I

SET VAR

GOTO END


:ADDV

SET VAR=%VAR%!%1


:END

所有输出行都存储在VAR中,以“!”分隔。


@John:这有什么实际用途吗?我认为您应该观看PowerShell或任何其他能够轻松执行脚本任务的编程语言(Python,Perl,PHP,Ruby)


查看完整回答
反对 回复 2019-08-16
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

多年来,谦逊的命令积累了一些有趣的能力:


D:\> FOR /F "delims=" %i IN ('date /t') DO set today=%i

D:\> echo %today%

Sat 20/09/2008

请注意,"delims="覆盖默认空格和制表符分隔符,以便date命令的输出一次全部吞噬。


要捕获多行输出,它仍然可以基本上是单行(使用变量lf作为结果变量中的分隔符):


REM NB:in a batch file, need to use %%i not %i

setlocal EnableDelayedExpansion

SET 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"


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 1049 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信