1
28
如果必须捕获所有命令输出,则可以使用这样的批处理:
所有输出线都存储在用“!”分隔的var中。. @约翰:这个有什么实际用途吗?我认为您应该关注PowerShell或任何其他能够轻松执行脚本任务的编程语言(python、perl、php、ruby) |
2
75
谦卑的 对于 多年来,司令部积累了一些有趣的能力:
注意
要捕获多行输出,它本质上仍然可以是一行(使用变量lf作为结果变量中的分隔符):
要捕获管道表达式,请使用
|
3
23
要获取当前目录,可以使用以下命令:
不过,它使用的是一个临时文件,所以它不是最漂亮的,但它确实有效!cd'将当前目录放入'tmpfile','set'加载tmpfile的内容。 这里有一个关于多行“数组”的解决方案:
但您可能想考虑转移到另一个更强大的shell,或者为这些东西创建一个应用程序。这将极大地扩展批处理文件的可能性。 |
4
7
你需要使用
从评论到本文:
|
5
5
在“v”环境变量中设置最新文件的示例
在批处理文件中,必须在循环变量中使用双前缀:
|
6
3
只需使用
你可以使用
并且提前
|
7
2
如果您正在寻找中提供的解决方案 Using the result of a command as an argument in bash? 下面是代码:
[学分] :多亏了所有其他的答案和一些挖掘 Windows XP commands 页。 |
8
2
|
9
1
您可以在一个变量中捕获所有输出,但行之间将由您选择的字符分隔(在下面的示例中),而不是实际的CR-LF。
第二版,如果需要逐行打印出内容。这得益于这样一个事实,即“dir/b”不会有重复的输出行,因此在一般情况下可能不起作用。
|
10
1
我想在上述解决方案中添加一句话: 如果您的命令位于路径中,或者该命令是一个没有空格或特殊字符的命令路径,那么所有这些语法都可以很好地工作。 但是,如果您尝试使用位于路径包含特殊字符的文件夹中的可执行命令,则需要将命令路径括在双引号(“)中,然后for/f语法将不起作用。 实例:
或
或
在这种情况下,我发现使用命令并将其结果存储在变量中的唯一解决方案是(临时)将默认目录设置为命令本身:
结果是正确的:
当然,在上面的示例中,我假定批处理脚本与可执行命令位于同一文件夹中,这样我就可以使用“%~d0%~p0”语法。如果不是这样,则必须找到一种方法来定位命令路径,并将默认目录更改为其路径。 注意:对于那些想知道的人,这里使用的示例命令(选择文件夹)是folderbrowse.exe。我在网站f2ko.de上找到的。( http://f2ko.de/en/cmd.php ) 如果有人对通过复杂路径访问的此类命令有更好的解决方案,我将非常高兴听到它。 吉尔斯 |
11
0
结果是'txt:hola' |
12
-1
请参考这个 http://technet.microsoft.com/en-us/library/bb490982.aspx 这就解释了如何使用命令输出。 |
late1 · 批处理文件未执行命令 2 年前 |
Ali EXE · 如何根据bat中命令的输出设置变量? 2 年前 |
Laureano Oliva · 如何将链接用作参数%1批处理函数? 2 年前 |
F35H · 涉及二次使用cd的错误。。在C代码中 2 年前 |