У меня есть каталог, для которого я хочу перечислить весь .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%
А как же:
@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
На основе решения Рубенса необходимо включить функцию отложенного расширения переменных 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 байта.