我想用我们创建的时间戳命名我的批处理日志文件。但是如果时间是<上午10点。然后我得到一个空格,文件名将被破坏。我试图通过IF捕获它,但不知何故它不起作用,cmd窗口立即关闭:
set f_null=%time:~-11,1%
If /i %f_null% == " " (set zeitstempel_start=%DATE:~-4%%DATE:~-7,-5%%DATE:~-10,-8%0%time:~-10,1%%time:~-8,2%%time:~-5,2%) else
(set zeitstempel_start=%DATE:~-4%%DATE:~-7,-5%%DATE:~-10,-8%%time:~-11,2%%time:~-8,2%%time:~-5,2%)
set startzeit=Start: %date% %time:~-11,2%:%time:~-8,2%:%time:~-5,2%
set datei_name=%zeitstempel_start%
echo %startzeit% > %def_log_dir%\%datei_name%.log
知道问题是什么吗?
答案 0 :(得分:0)
set zeitstempel_start=%DATE:~-4%%DATE:~-7,-5%%DATE:~-10,-8%%time:~-11,2%%time:~-8,2%%time:~-5,2%
set zeitstempel_start=%zeitstempel_start: =0%
用0
替换任何空格。
if
的问题有两个:
If /i %f_null% == " "
当f_null
空间被解析为If /i == " "
,这是语法错误。 If /i "%f_null%" == " "
工作 - 比较非常直接。
序列) else (
必须全部位于同一行,而不是像您发布的那样分成两行。有可能(事实上很常见)将) else (
放在自己独立的行上。
如果从提示符运行批处理,则可以看到正在生成的错误消息。