Как вставить вывод команды в переменную в командном файле?

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

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

 Kalpesh Soni04 мая 2012 г., 21:54

Ответы на вопрос(3)

@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!

которое поставляется предварительно установленным. Его называют 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 не имеет массивов и т. д.)

 Camilo Martin08 сент. 2012 г., 02:43
Просто примечание для тех, кто не любит этот подход только из-за неприязни к синтаксису VB (например, я) - та же утилита (wscript/cscript, которая поставляется с Windows) также поддерживает JScript (движок Javascript IE). Недавно я собрал всю систему сборки с использованием JScript, и это было довольно хорошо, потому что мне нравится Javascript.
Решение Вопроса

Ваш ответ на вопрос