Как связать строки в пакетном файле Windows?

У меня есть каталог, для которого я хочу перечислить весь .doc файлы с a ;.

Я знаю следующую пакетную команду echos все файлы:

for /r %%i In (*.doc) DO echo %%i

Но теперь я хочу поместить их всех в переменную, добавить a ; промежуточный и повторяют их внезапно.
Как я могу сделать это?

set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%
72
задан Fortega 13 March 2013 в 09:19
поделиться

2 ответа

А как же:

@echo off
set myvar="the list: "
for /r %%i in (*.doc) DO call :concat %%i
echo %myvar%
goto :eof

:concat
set myvar=%myvar% %1;
goto :eof
60
ответ дан 24 November 2019 в 12:44
поделиться

На основе решения Рубенса необходимо включить функцию отложенного расширения переменных env (тип "help setlocal" или "help cmd"), чтобы вариация была правильно оценена в цикле:

@echo off
setlocal enabledelayedexpansion
set myvar=the list: 
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%

Также учтите следующее ограничение (MSDN):

Максимальная индивидуальная среда переменный размер 8192 байта.

45
ответ дан 24 November 2019 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: