在Windows上的batch file里,我想要一些variables来输出dir /b
命令。
这可以如何实现?
批处理文件没有很好地处理这个用例。 我找到了一个描述使用临时文件的技术的线程 。
在Windows上,预装了更好的设备。 它叫vbscript(后来还有Powershell)。 为什么不使用VBScript呢?
strFolder="c:\test" Set objFS = CreateObject( "Scripting.FileSystemObject" ) Set objFolder = objFS.GetFolder(strFolder) s="" For Each strFile In objFolder.Files s=s & strFile & vbCrLf Next WScript.Echo s
变量s
现在包含一个文件列表(相当于dir
)。 如果你想存储每个文件名到数组中,也是可能的。 (cmd.exe没有数组等)
@ECHO OFF setlocal enabledelayedexpansion set LF=^ rem ** The two empty lines are NECESSARY set output= FOR /F %%i in ('dir /b') do SET output=!output!!LF!%%i ECHO !output!