将命令输出放入变量中

时间:2012-04-12 19:53:25

标签: windows batch-file

给定具有以下文件的目录

image1.txt
image2.txt
image3.txt

我想获取最旧的文件(让文件按数据排序,先设置oldset日期):

dir /b /od c:\test\image?.txt | findstr ^1

手动将其键入cmd.exe时效果很好。现在(在批处理脚本中)我想将此命令的输出放在变量中。我怎样才能做到这一点?谢谢!

更新 想知道是否有直接的方式没有使用循环?

4 个答案:

答案 0 :(得分:2)

For /F %%A in ('"dir /b /od C:\test\image*.txt|findstr ^1"') do set myVar=%%A

你可以通过For循环来做,在命令行中尝试,我只是测试它,它工作正常

输出:

set myVar=image1.txt

在命令行上执行Set时,您可以看到:

myVar=image1.txt
NUMBER_OF_PROCESSORS=2

答案 1 :(得分:1)

没有直接方式,FOR-Loop是使用临时文件设置/ p的另一种方式。

dir /b /od c:\test\image?.txt | findstr ^1 > oldest.tmp
< oldest.tmp set /p myVar=

答案 2 :(得分:0)

示例:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

四个步骤。

答案 3 :(得分:-2)

设置variableName = dir / b / od C; \ test \ image?.txt | findstr ^ 1

注意:这是未经测试的。 来源:

Google