Что не так с этим циклом for в моем скрипте?

463
Francky Leyn
K:\bin>type get_date_without_space.bat SET DATE_WITH_SPACE=%DATE% FOR /F "TOKENS=1-2" %I IN ("%DATE_WITH_SPACE%") DO SET DATE_WITHOUT_SPACE=%I_%J ECHO %DATE_WITHOUT_SPACE% 

Это не работает Зачем?

K:\bin>get_date_without_space.bat K:\bin>SET DATE_WITH_SPACE=Fri 11/16/2018 DATE_WITH_SPACEI_J was unexpected at this time.  K:\bin>FOR /F "TOKENS=1-2" DATE_WITH_SPACEI_J K:\bin> 
0
Чтобы заменить пространство, просто используйте подстановку строк `Echo% date: = _%` LotPings 5 лет назад 1
Это работает. Но можете ли вы дать мне синтаксис оператора FOR, чтобы выполнить работу? Я до сих пор не могу найти правильное утверждение. Francky Leyn 5 лет назад 0
Как я уже писал в своем первом комментарии, удвойте знаки процента мета-переменных `%% I` и` %% J`. См. Http://ss64.com/nt/for.html. LotPings 5 лет назад 0
запустите `for /?` и прочитайте его вывод phuclv 5 лет назад 0

1 ответ на вопрос

1
Francky Leyn
FOR /F "TOKENS=1-2" %%I IN ("%DATE_WITH_SPACE%") DO SET DATE_WITHOUT_SPACE=%%I_%%J 

Мета-переменные - это I и J и исходный код, %Iа %Jвместо %%Iи %%J.

Если вам нужно опубликовать дополнительную информацию по вашему вопросу, пожалуйста, отредактируйте ее, чтобы сделать это. Но опубликовать это как ответ? Нету. JakeGould 5 лет назад 0
Это не дополнительная информация, которая будет добавлена ​​к вопросу; это *** является *** ответом (хотя и печально кратким). Scott 5 лет назад 0
@ Скотт Я совершенно не могу понять, как это ответ. JakeGould 5 лет назад 0
@JakeGould: Проблема заключалась в том, что OP использовал `% I` и`% J` в файле BAT. Ответ (показанный выше) заключается в использовании `%% I` и` %% J` вместо `% I` и`% J`. (Я * сказал *, что это было очень кратко.) Scott 5 лет назад 2
@ Скотт имеет смысл. Отредактировано, чтобы добавить этот бит информации. JakeGould 5 лет назад 1

Похожие вопросы