[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样判断是否是周末?

本帖最后由 lonron 于 2023-5-1 00:12 编辑

由于Date命令在系统日期格式为yyyy-MM-dd时不会输出是周几所以搜了另一个方式如下代码:
  1. @echo off
  2. for /f "delims== tokens=2" %%i in ('wmic path win32_localtime get dayofweek /format:list ^| find "="') do (
  3.     if %%i equ 6 (
  4.         echo 周六
  5.         pause
  6.     )
  7.     if %%i equ 0 (
  8.         echo 周日
  9.         pause
  10.     )
  11. )
  12. echo 工作日
  13. pause
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('wmic path win32_localtime get dayofweek /format:list ^| find "="') do (
  4.     set %%i
  5.     if !DayOfWeek! equ 6 (
  6.         echo 周六
  7.         pause
  8.     )
  9.     if !DayOfWeek! equ 0 (
  10.         echo 周日
  11.         pause
  12.     )
  13. )
  14. echo 工作日
  15. pause
复制代码
以上两段代码都不能正确判断,是哪里出了问题呢?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# lonron


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
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('wmic path win32_localtime get dayofweek /value ^| findstr "="') do (
  3.     for /f "delims=" %%a in ("%%i") do (
  4.         if %%a equ 6 (
  5.             echo 周六
  6.         ) else if %%a equ 0 (
  7.             echo 周日
  8.         ) else (
  9.             echo 工作日
  10.         )
  11.     )
  12. )
  13. pause
复制代码
1

评分人数

    • lonron: 感谢指导!技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    还真是,输出文本看了一下,多了一个换行符!!!感谢帮助,对wmic不是很熟悉。

TOP

返回列表