Я хочу вывести информацию в файл журнала как таковой
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 в конец имени машины?
batch-file
string-manipulation
concatenation
Ганди Мэннинг
источник
источник
BASH
, извините за это ... Я больше не пользуюсь Windows, чтобы иметьbatch/dos/powershell
эквивалент. Я уверен, что кто-то скоро будет.DOS
эквивалент?myfile.bat
так, что бы она ни работала , вполне мог бы быть язык cmd.exeОтветы:
Вам даже не нужно вычислять длину имени вашей машины. Вам просто нужно знать, сколько символов вы хотите, прежде чем ваше сообщение.
Допустим, вы хотите, чтобы ваше сообщение начиналось с позиции 44. У вас уже есть отметка времени и строки с именем вашего компьютера. Временная метка имеет постоянную ширину, но ширина имени машины меняется.
Создайте переменную с вашей отметкой времени, затем именем вашего компьютера и 43 пробелами. Затем возьмите подстроку результата, сохранив только первые 43 символа, и добавьте ваше сообщение.
-- ВЫХОД --
Для получения дополнительной информации об операциях с подстрокой переменных (а также поиска и замены) введите
HELP SET
илиSET /?
из командной строки.источник