Board logo

标题: [日期时间] 批处理获取系统时间如何在小于10的数值(个位数)前补0/补零 [打印本页]

作者: ywjbycd    时间: 2014-2-10 10:57     标题: 批处理获取系统时间如何在小于10的数值(个位数)前补0/补零

本帖最后由 pcl_test 于 2016-9-26 12:47 编辑
  1. set time0=%time:~0,2%
  2. if %time0% leq 9 (set %time0%=0%time:~1,1%) else (set %time0%=%time:~0,2%)
  3. echo %time0%
复制代码
这样写完还是 9的状态,这段代码是我从网上复制的.大致意思我明白,就是格式上好像有问题,没有达到效果.求大神们帮忙修改一下.
作者: xxpinqz    时间: 2014-2-10 11:07

  1. @echo off
  2. set/a time0=%time:~0,2%+100
  3. echo %time0:~-2%
  4. pause
复制代码

作者: ywjbycd    时间: 2014-2-10 11:12

谢谢啦  受教了...
作者: ywjbycd    时间: 2014-2-10 11:47

追问,大神请问 在echo %time0:~-2%后 假如结果是09 如何把这个09变成一个字符串 重新set一个a=09.在10点的时候echo %time0:~-2%这个会变成10  然后这个a还等于09.
目的就是假如9点整我做个文件的备份,等都做完了可能要10点了.那么我ftp传的时候如果还用这个%time0:~-2% 那么取名的时候就会找不到这个文件 因为以前那个文件是09 现在这个变成10  系统会找不到10这个文件 就传不过去了.
求大神继续回复.
作者: PowerShell    时间: 2014-2-10 12:07

http://www.bathome.net/thread-28199-1-2.html   [PowerShell每日技巧]获取昨天的日期、时间-比如零点(20131226)

http://www.bathome.net/thread-25932-1-1.html    powershell送你把,解决日期计算类问题的金钥匙!

楼主想干嘛?去当前时间减10小时的powershell命令为:
  1. (get-date).addhours(-10)
复制代码

作者: DAIC    时间: 2014-2-10 12:30

回复 4# ywjbycd


    把完整代码贴出来看看
作者: ywjbycd    时间: 2014-2-10 13:30

我就想我现在备份一个文件 文件名字是2014-12-10-09 (09是当前的小时)
2014-12-10-09 代码是
set date0=%date:~0,4%-%date:~5,2%-%date:~8,2%-
set/a time0=%time:~0,2%+100
set dt=%date0%%time0:~0,2%
生成一个文件比如是文本格式 那么假设这个文本名字是2014-12-10-09.txt
那么这个文本是在9点生成的.生成完文本我ftp到另外一台主机,把这个文本上传.假如生成这个文本需要一个小时的时间.那么现在就是10点.在ftp过程put的时候 我该怎么选择命名文件呢 要是还用上边的脚本 那么就该变成2014-12-10-10了 并不是2014-12-10-09.
所以请教一下如何把这个2014-12-10-09变成一个常量.然后我在ftp put的时候可以准确的去查找这个名字.不至于找不到文件.
注:生成备份文件(txt文件),ftp(文件上传)都包括在一个bat里边.不会分开运行.
作者: terse    时间: 2014-2-10 23:39

dt的值不是吗
作者: ywjbycd    时间: 2014-2-11 09:33

dt的值是   但是到了10点dt的值就会变化了吧  就变成10了  不是09了吧
作者: DAIC    时间: 2014-2-11 13:14

回复 9# ywjbycd


    到了10点dt的值不会变化
作者: ywjbycd    时间: 2014-2-11 13:20

哦?那我试试 谢谢




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