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

[系统相关] 批处理获得昨天日期为何有空格?

输出昨天的日期,结果产生了空格
  1. @echo off
  2. echo   wscript.echo   dateadd("d",-1,date)   >%tmp%\tmp.vbs   
  3.   for   /f   "tokens=1,2,3*   delims=-"   %%i   in   ('cscript   /nologo   %tmp%\tmp.vbs')   do   set   y=%%i   
  4.   for   /f   "tokens=1,2,3*   delims=-"   %%i   in   ('cscript   /nologo   %tmp%\tmp.vbs')   do   set   m=%%j   
  5.   for   /f   "tokens=1,2,3*   delims=-"   %%i   in   ('cscript   /nologo   %tmp%\tmp.vbs')   do   set   d=%%k   
  6.   if   %m%   LSS   9   set   m=0%m%   
  7.   if   %d%   LSS   9   set   d=0%d%   
  8. set   nowdate=%y%年%m%月%d%日
  9. echo %nowdate%
复制代码
输出:2009   年11   月08      日

这些空格怎么产生的?怎样去掉?

你的set   y=%%i后面跟那么多空格干什么?
把每行最后的空格去掉就可以了

TOP

不知楼主是怎么拼凑出这段代码的,确实有蛮乱,修改如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. echo wscript.echo dateadd("d",-1,date)>%tmp%\tmp.vbs
  3. for /f "tokens=1-3 delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do (
  4.      if %%j leq 9 set "a=0"
  5.      if %%k leq 9 set "b=0"
  6.      echo %%i年!a!%%j月!b!%%k日
  7. )
  8. del /q "%temp%\tmp.vbs"
  9. pause>nul
复制代码

[ 本帖最后由 batman 于 2009-11-9 18:15 编辑 ]
***共同提高***

TOP

返回列表