нарезать и заменить строку перед присвоением переменной - PullRequest
1 голос
/ 18 февраля 2020

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

Пример:

    SET MY_TIME=%%time:~0,8%::=_%
    ECHO %MY_TIME%
    #output: %12:50:47::=_%

Мой текущий результат, потому что я не нашел способ заменить и нарезать в одной строке ..

    SET GET_TIME=%time:~0,8%
    SET MY_TIME=%GET_TIME::=_%
    ECHO %MY_TIME%
    #output: 12_42_48

1 Ответ

1 голос
/ 18 февраля 2020

cmd не допускает множественных встроенных замен, как вы уже узнали. Самое близкое, что вы, вероятно, получите:

из cmd:

set "mytime=%time:~0,8%" & call echo %mytime::=_%

Из пакетного файла:

set "mytime=%time:~0,8%" & call echo %%mytime::=_%%

В качестве примечания, если хотите чтобы сохранить формат, вам также следует рассмотреть возможность изменения одного ди git часа:

set "mytime=%time =%

Приведенное выше заменит пробел перед одним ди git часом (с 1 до 9 утра) на ноль, сохраняющий ваш формат hhmmss

Однако при достижении этого больше нет цели запускать его как один слой, и вы можете также добавить его построчно:

set "mytime=%time:~0,8%"
set "mytime=%mytime: =0%"
echo %mytime::=_%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...