1 (изменено: vo1ty, 2013-07-26 03:22:36)

Тема: CMD/BAT: Ошибка в маленьком куске кода

Доброго времени суток!
Скажу честно, в BAT не силён, поэтому и пишу сюда.
Задача: присвоить некой переменной значение, содержащее список файлов с расширением .txt в текущей директории через пробел (без полного пути).
Дошёл вот до чего:

for /r . %%g in (*.txt) do echo %%~nxg

Этот код выводит список на экран, но задача сводится к тому, чтобы присвоить переменной такое значение.

for /r . %%g in (*.txt) do set tfiles=%tfiles% %%~nxg
echo %tfiles%

И вижу... пробел и имя последнего файла.
Что я делаю не так?

2 (изменено: vo1ty, 2013-07-26 03:41:39)

Re: CMD/BAT: Ошибка в маленьком куске кода

Не знаю, стоило ли слить эти сообщения. Если да, то прошу модераторов так и сделать.

Решение нашёл (не пришёл к нему, а именно нашёл в сети). Не стал вникать в подробности, но...

setlocal enabledelayedexpansion enableextensions
set TFILES=
for %%x in (*.txt) do set TFILES=!TFILES! %%x
set TFILES=%TFILES:~1%

3

Re: CMD/BAT: Ошибка в маленьком куске кода

vo1ty, по-хорошему, ещё кавычек не хватает, обрамляющих имена файлов. А то попадётся файл с пробелом в имени — что будете делать ?