[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
“在DOS里是 2010 01 09”
这是不可能的
正如Batcher所说
“DOS里面的set命令是不支持的字符串截取的”
DOS甚至是没有预置变量%date%的
出来这个结果就证明你的环境不是纯DOS

怀疑你的POS机是Windows
只不过可能区域不对
所以日期字符串格式不对
使if 后面出现空格或非法字符
导致语法出错

你在你的所谓DOS环境下
echo %date%
看一下结果是什么就知道了

另外记住
使用if的时候别忘了加上引号或其它防空字符
if “%tm1%”==“2010-01-11” goto ct
这样可以避免语法错导致程序终止

TOP

判定定时执行
和将日期分段获取没有必然的联系
楼主把问题想的复杂了

DOS和Windows下的思路是截然不同的
如果真的是DOS
可以试试
  1. echo.|date|find "2010-01-12">nul
  2. if not errorlevel 1 goto ct
复制代码

TOP

首先在windows下
开始-运行-command-可以得到接近纯DOS的测试环境
建议不要再在cmd下测试了
没有任何意义

另外
建议在你的DOS环境下
运行
ver
find /?
set path
这几个命令看看结果如何
你的环境不单是纯DOS的问题

另外
有可能
把你的程序的全部内容贴上来
让我们了解你的最终意图是什么

TOP

楼主的问题环境
果然跌掉所有人的眼镜
不是大家所想的Windows CMD
而是所谓的Windows 98 command
这是一个很接近纯DOS的命令行环境
但绝非楼主信誓旦旦所说的“纯DOS”

照道理
在这个环境下
我的Echo.|date|find应该也可以适用
但鉴于楼主的急切
以致于连find命令敲错了都顾不上修改
还是将我的想法变成了一段演示代码
可以复制粘贴过去试试
日期可以根据自己的需要进行修改
  1. @echo off
  2. rem 在指定日期2010-01-21建立目录c:\ct,否则建立c:\22
  3. echo.|date|find "2010-01-21">nul
  4. if not errorlevel 1 goto ct
  5. if not exist c:\22\nul echo md c:\22
  6. if not exist c:\22\nul md c:\22
  7. goto end
  8. :ct
  9. if not exist c:\ct\nul ECHO md c:\ct
  10. if not exist c:\ct\nul md c:\ct
  11. :end
复制代码

TOP

返回列表