How to insert the output of a command to variable in a batch file?

后端 未结 3 513
情深已故
情深已故 2021-01-22 10:41

Inside a batch file on Windows I would like some variable to have the output of dir /b command.

How this can be achieved ?

相关标签:
3条回答
  • 2021-01-22 11:22

    Batch files didn't handle this use case very well. I did find one thread that describes a technique using temporary files.

    0 讨论(0)
  • 2021-01-22 11:27

    On Windows, there's a better facility that comes pre-installed. Its called vbscript (and later there is Powershell ). Why don't you use vbscript instead.

    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
    

    The variable s now contains a list of files (equivalent to dir ). And if you want to store each filename into arrays, its also possible. (cmd.exe does not have arrays etc)

    0 讨论(0)
  • 2021-01-22 11:40
    @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!
    
    0 讨论(0)
提交回复
热议问题