如何将一个命令的输出插入batch file中的variables?

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!