Как вставить вывод команды в переменную в командном файле? - PullRequest
2 голосов
/ 01 октября 2010

Внутри командного файла в Windows я бы хотел, чтобы какая-то переменная выводила команду dir /b.

Как этого достичь?

Ответы [ 3 ]

2 голосов
/ 01 октября 2010

Пакетные файлы не очень хорошо справились с этим вариантом использования. Я нашел один поток , описывающий технику с использованием временных файлов .

1 голос
/ 04 мая 2012
@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!
1 голос
/ 02 октября 2010

В 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 не имеет массивов и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...