Если вы используете for
с подстановочным знаком, интерпретатор ищет все файлы, соответствующие подстановочному знаку (в данном случае «bb *»), и передает имена файлов вашей команде. Ваша команда не передаст строку, содержащую '*' (или '?').
Вместо этого создайте текстовый файл с именем filelist.txt
, содержащий:
aa
bb*
cc
и используйте команду:
for /F %%I in (filelist.txt) do echo mget %%I
Обновление
Очевидно, уже есть filelist.txt
с несколькими элементами в каждой строке. Создайте командный файл с именем vary.bat
:
@echo off
:more
if "%1"=="" (goto finished)
echo mget %1
shift
goto more
:finished
Это принимает переменное количество параметров и отображает mget для каждого из них. Назовите это что-то вроде:
for /F "tokens=*" %%I in (filelist.txt) do vary %%I
Еще одно обновление
Это будет читать parm.txt
, создавать переменную для каждого из server
, user
, pwd
и files
, затем вызывать vary.bat
(описано выше) в списке файлов.
for /F "delims== tokens=1,2" %%I in (parm.txt) do set %%I=%%J
vary %files%