Board logo

标题: [日期时间] 批处理无法正确获取0点至9点之间的时间是什么原因 [打印本页]

作者: mhdd30    时间: 2014-5-8 01:26     标题: 批处理无法正确获取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_ ”后面的时间没了,文件的后缀也跟着没了,这个是啥情况?请教各位大神指点一下。多谢了
作者: apang    时间: 2014-5-8 10:30

0~9点时,%time%值前面有一个空格
作者: mhdd30    时间: 2014-5-8 14:01

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



    请教大神,那我这个脚本应该怎么写才会正常获取数值,还请多多赐教,谢谢
作者: CrLf    时间: 2014-5-8 16:36

本帖最后由 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
作者: PowerShell    时间: 2014-5-9 10:08

原来是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
作者: PakTC    时间: 2014-5-9 11:30

回复 5# PowerShell


    你不问问人家服务器上面有没有powershell?  服务器系统版本? 装powershell方不方便?
作者: CrLf    时间: 2014-5-9 17:42

一个另类的日期格式化方式:
  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
复制代码
好吧其实是鸡肋




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