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

[日期时间] 批处理无法正确获取0点至9点之间的时间是什么原因

本帖最后由 pcl_test 于 2016-10-14 23:32 编辑

批处理输出文件午夜12点时间为何消失?
今日由于服务器需要自动备份,于是就写了一个批处理,但是后来发现,时间输出有问题,表现为上午10点之前的时候这段时间,后面的时间和文件后缀输出就没了,其他时间正常,下面是代码

也就是说上午 0点至9 点 这段时间内输出是不正常的。
  1. cd \
  2. cd C:\ken\SQL\bin
  3. mysqldump -umose -p123456 dbname > D:\aaa\SQL\%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%.sql
复制代码
比如现在的时间是2014-05-06 00:12:13,如果按照脚本来,正常的应该是 输出文件为 “ 2014-05-06_00-12-13.sql ”,但是现在输出的是“ 2014-05-06_ ”后面的时间没了,文件的后缀也跟着没了,这个是啥情况?请教各位大神指点一下。多谢了

0~9点时,%time%值前面有一个空格

TOP

0~9点时,%time%值前面有一个空格
apang 发表于 2014-5-8 10:30



    请教大神,那我这个脚本应该怎么写才会正常获取数值,还请多多赐教,谢谢

TOP

本帖最后由 CrLf 于 2014-5-8 16:38 编辑

路径加引号即可:
"D:\aaa\SQL\%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%-%time:~3,2%-%time:~6,2%.sql"
也可以用转义符:
D:\aaa\SQL\%date:~0,4%-%date:~5,2%-%date:~8,2%_^%time:~0,2%-%time:~3,2%-%time:~6,2%.sql

TOP

原来是0---9点之间,你却说午夜12点消失,搞的跟午夜凶铃是的,吓唬人哩

powershell 生成日期时间更简单,
powershell代码
  1. get-date  -format   yyyy-MM-dd_hh-mm-ss
复制代码
返回
2014-05-09_10-02-13    ----每输入一遍,返回一行,命令格式不比bat容易理解么?
2014-05-09_10-02-39   -----中间的分隔符,可以自定义,中划线,下划线,斜线,年月日等。
2014-05-09_10-05-00
2014-05-09_10-05-03
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 5# PowerShell


    你不问问人家服务器上面有没有powershell?  服务器系统版本? 装powershell方不方便?
Press Any Key To Continue...

TOP

一个另类的日期格式化方式:
  1. @echo off
  2. set rar="C:\Program Files\WinRAR\rar.exe"
  3. %rar% a -agyyyy_mm_dd_hh_mm_ss .rar %0
  4. for /f "skip=3 tokens=2*" %%a in ('@%rar% a -agyyyy_mm_dd_hh_mm_ss .rar "%~s0"') do set dt=%%b
  5. echo %dt%
  6. pause
复制代码
好吧其实是鸡肋

TOP

返回列表