1

给定一个包含以下文件的目录

image1.txt
image2.txt
image3.txt

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

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

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

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

4

4 回答 4

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
于 2012-04-12T20:13:00.230 回答
1

没有直接的方法,FOR 循环是一种方法,或者另一种方法是使用临时文件设置 /p。

dir /b /od c:\test\image?.txt | findstr ^1 > oldest.tmp
< oldest.tmp set /p myVar=
于 2012-04-12T20:36:24.940 回答
0

例子:

wmic path Win32_VideoController get CurrentHorizontalResolution | FINDSTR [0-9] > X.txt 'Output in a file
wmic path Win32_VideoController get CurrentVerticalResolution | FINDSTR [0-9] > Y.txt
wmic path Win32_VideoController get CurrentRefreshRate | FINDSTR [0-9] > Hz.txt
wmic path Win32_VideoController get CurrentBitsPerPixel | FINDSTR [0-9] > Bits.txt
set /p X= < X.txt 'Input from a file
set /p Y= < Y.txt
set /p Hz= < Hz.txt
set /p Bits= < Bits.txt
set X=%X: =% 'Remove the spaces
set Y=%Y: =%
set Hz=%Hz: =%
set Bits=%Bits: =%
DEL /q X.txt 'Delete file created
DEL /q Y.txt
DEL /q Hz.txt
DEL /q Bits.txt

四个步骤。

于 2018-03-15T16:20:35.153 回答
-2

设置变量名 = dir /b /od C;\test\image?.txt | 找到str ^1

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

谷歌

于 2012-04-12T20:09:14.993 回答