批量检查空格

时间:2018-01-08 09:22:05

标签: batch-file if-statement whitespace

我想用我们创建的时间戳命名我的批处理日志文件。但是如果时间是<上午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 

知道问题是什么吗?

1 个答案:

答案 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的问题有两个:

  1. If /i %f_null% == " "f_null 空间被解析为If /i == " ",这是语法错误。 If /i "%f_null%" == " "工作 - 比较非常直接。

  2. 序列) else (必须全部位于同一行,而不是像您发布的那样分成两行。有可能(事实上很常见)将) else (放在自己独立的行上。

  3. 如果从提示符运行批处理,则可以看到正在生成的错误消息。