给定一个包含以下文件的目录
image1.txt
image2.txt
image3.txt
我想获取最旧的文件(让文件按数据排序,首先是旧日期):
dir /b /od c:\test\image?.txt | findstr ^1
手动将其键入 cmd.exe 时效果很好。现在(在批处理脚本中)我想将此命令的输出放入变量中。我怎样才能做到这一点?谢谢!
更新: 想知道是否有没有使用循环的直接方法?
给定一个包含以下文件的目录
image1.txt
image2.txt
image3.txt
我想获取最旧的文件(让文件按数据排序,首先是旧日期):
dir /b /od c:\test\image?.txt | findstr ^1
手动将其键入 cmd.exe 时效果很好。现在(在批处理脚本中)我想将此命令的输出放入变量中。我怎样才能做到这一点?谢谢!
更新: 想知道是否有没有使用循环的直接方法?
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
没有直接的方法,FOR 循环是一种方法,或者另一种方法是使用临时文件设置 /p。
dir /b /od c:\test\image?.txt | findstr ^1 > oldest.tmp
< oldest.tmp set /p myVar=
例子:
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
四个步骤。