NT BATCH - Проблемы с отображением строк - PullRequest
0 голосов
/ 29 июня 2018

Я пишу пакетный скрипт NT (я не могу установить powershell или любой другой более продвинутый язык сценариев на компьютере, на котором он должен работать).

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

Итак, я делаю манипуляции с датой, чтобы определить, сколько тайм-аутов должно пройти для shutdown.exe, когда он запускается как сценарий запуска.

Обратите внимание на следующее:

SET RAt = "04:15"
SET RHour = %RAt:~0,2%
SET RMin = %RAt:~3,2%

и

Echo Server will reboot in %Days2Reboot% Days (%Secs2Reboot% seconds), on %GDate% at approximately %RHour:~0,2%:%RMin%

Значение RAt не отображается, и если я изменяю оператор echo, вместо этого выводим %RHour%:%RMin%, значение RHour равно 4, а не 04 - как мне либо исправить отображение HH: Значение строки формата MM или принудительное отображение числа с определенным количеством цифр?

1 Ответ

0 голосов
/ 29 июня 2018

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

Если вы SET RAt = "04:15", вы устанавливаете переменную с именем % R A t % до значения " 0 4 : 1 5 ".

Когда вы Set переменную, рекомендуется не включать двойные кавычки как часть значения, а делать это во время фактического использования, то есть "%VariableName%". Чтобы защитить определенные символы в VariableValue или предотвратить добавление скрытого пробела к значению, рекомендуется окружать пару переменных двойными кавычками

Поэтому рекомендуемый синтаксис для команды Set:

Set "VariableName=VariableValue"

Я бы посоветовал вам рассмотреть следующий тип изменений, основанный на приведенном выше совете:

SET "RAt=04:15"
SET "RHour=%RAt:~,2%" % or ~0,2 % % or ~-5,2 %
SET "RMin=%RAt:~-2%" % or ~3,2 %

Конечно, если содержимое переменной действительно уже в двойных кавычках:

SET "RHour=%RAt:~1,2%" % or ~-6,2 %
SET "RMin=%RAt:~-3,2%" % or ~4,2 %

Строки в конце строк набора между символами процента являются альтернативами в качестве комментариев, их можно удалить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...