Получить имя файла в пакет MSG - PullRequest
1 голос
/ 19 мая 2011

В моем предыдущем посте я сделал пакет (см. Ниже)

    @ECHO OFF

XCOPY "%cd%\CTB\*.CTB" c:\ICT\AutoCAD_2010\CTB\

MSG * Hello %USERNAME%, Your CTB was successfully transferred.

exit

Как мне добиться, чтобы в сообщении отображалось имя файла (при условии, что имя меняется время от времени)

Ответы [ 2 ]

0 голосов
/ 06 мая 2012

Поскольку XCOPY отображает имена скопированных файлов, можно прочитать вывод и установить переменную среды в первой строке (при условии, что всегда есть один файл для копирования):

@ECHO OFF

SET filename=
FOR /F "delims=" %%R IN ('XCOPY "%cd%\CTB\*.CTB" c:\ICT\AutoCAD_2010\CTB\') DO (
  IF NOT DEFINED filename SET "filename=%%R"
)

MSG * Hello %USERNAME%, Your "%filename%" was successfully transferred.

EXIT
0 голосов
/ 19 мая 2011

Если никто не придумает более элегантного решения, вы всегда можете прибегнуть к спаму: -)

(внутри командного файла вам нужно %% p из командной строки% p)

for %%p in (%cd%\CTB\*.CTB) do MSG * Hello %USERNAME%, %%p was copied to C:\ICT\Auto...

Например, я использовал:

C:\Users\Stephen>for %p in ("D:\My Documents\Youcam\*.jpg") do MSG * Stephen %p is here

чтобы спамить себя со всей доступной графикой в ​​этом каталоге.

...