在Windows上的批处理文件中,我希望某个变量具有dir /b
命令的输出。
如何实现这一目标?
答案 0 :(得分:2)
批处理文件无法很好地处理此用例。我找到了一个thread that describes a technique using temporary files。
答案 1 :(得分:1)
在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没有数组等)
答案 2 :(得分:1)
@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!