如何将命令的输出插入批处理文件中的变量?

时间:2010-10-01 13:01:20

标签: windows batch-file

在Windows上的批处理文件中,我希望某个变量具有dir /b命令的输出。

如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

批处理文件无法很好地处理此用例。我找到了一个thread that describes a technique using temporary files

答案 1 :(得分:1)

在Windows上,预安装的设备更好。它叫做vbscript(后来还有Powershell)。为什么不使用vb​​script。

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!