для/f в пакетном сценарии

echo% DATE% будет отображаться примерно так:

sri 09.01.2013

Вот сценарий:

for /f "tokens=2-4 usebackq delims=. " %%i in ('%DATE%') do set fileName=testing_%%i_%%j_%%k
echo %fileName%

When I run this script, I get the output like this:
The system cannot find the file ?§♦ź♫↕.
testing_09_01_2013

As you can see, the concatenated string is fine, but why am I getting message that system cannot find the file with some garbage at the end?

0
nl ja de

2 ответы

Проблема в том, что значение в круглых скобках должно быть строкой, заключенной в кавычки ИЛИ командой, заключенной в apostrophes . Хотя вы решили свою проблему, используя ('date/t') COMMAND, более эффективно и проще использовать ("% DATE%") STRING:

for /f "tokens=2-4 usebackq delims=. " %%i in ("%DATE%") do set fileName=testing_%%i_%%j_%%k
echo %fileName%
0
добавлено

Понял.. Вместо ('% DATE%') должно быть (`date/t`)

0
добавлено