4

Я хочу вывести информацию в файл журнала как таковой

01/08/2013 14:30 - Dynamic-Machine-Name    - Message starts
02/08/2013 07:12 - DynamicMachineName      - Log entry
02/08/2013 07:14 - Dynamic-PC-Name         - Information here
02/08/2013 08:01 - PC-Name                 - Execution continues
03/08/2013 09:00 - Dynamic-Name            - Message starts
03/08/2013 15:29 - Dynamic-Machine-Name    - Log information
03/08/2013 15:30 - Random-Machine-Name     - Message etc.

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

Что я не могу понять, так это как создать строку, содержащую количество пробелов x, или добавить эти пробелы x в конец имени машины?

1 ответ1

6

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

Допустим, вы хотите, чтобы ваше сообщение начиналось с позиции 44. У вас уже есть временная метка и строки с именем вашего компьютера. Временная метка имеет постоянную ширину, но ширина имени машины меняется.

Создайте переменную с вашей отметкой времени, затем именем вашего компьютера и 43 пробелами. Затем возьмите подстроку результата, сохранив только первые 43 символа, и добавьте ваше сообщение.

@echo off
setlocal
set "spaces=                                           "
set "timestamp=01/08/2013 14:30"
set "machineName=PC-Name"
set "message=Message goes here"
set "line=%timestamp% - %machineName%%spaces%"
set "line=%line:~0,43%- %message%
echo %line%

-- ВЫХОД --

01/08/2013 14:30 - PC-Name                 - Message goes here

Для получения дополнительной информации об операциях с переменными подстроками (а также поиска и замены) введите HELP SET или SET /? из командной строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .