我想将信息输出到日志文件中
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
你甚至不需要计算机器名的长度。你只需要知道消息前需要多少个字符。
假设您希望消息从位置 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 /?