Board logo

标题: [日期时间] [已解决]批处理for里面带if的输出为什么不对 [打印本页]

作者: habulu    时间: 2021-5-17 14:38     标题: [已解决]批处理for里面带if的输出为什么不对

  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('wmic path win32_localtime get DayOfWeek /value ^| findstr "="') do (
  3.   echo %%i
  4.   if %%i== 1 (
  5.   echo 1
  6.   ) else (
  7.   echo NO 1
  8.   )
  9. )
  10. pause
复制代码
输出:
1
NO 1

想在星期一执行某个操作,if判断后为什么转到else去了
作者: qixiaobin0715    时间: 2021-5-17 18:04

%%i应当含有未显示的字符
echo "%%i" 试试
作者: yhcfsr    时间: 2021-5-17 19:33

二楼说的对,有非打印字符CR
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('wmic path win32_localtime get DayOfWeek /value ^| findstr "="') do set weekday=%%i
  3. set weekday=%weekday:~,1%
  4. if %weekday%==1 (
  5.   echo 1
  6. ) ^
  7. else (
  8.   echo NO 1
  9. )
复制代码

作者: Batcher    时间: 2021-5-17 22:30

回复 1# habulu


参考:批处理调用WMIC时如何处理结果中的特殊字符?
http://bbs.bathome.net/thread-2862-1-1.html
http://bbs.bathome.net/thread-28534-1-1.html
http://bbs.bathome.net/thread-28535-1-1.html
http://bbs.bathome.net/thread-12033-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2