为了账号安全,请及时绑定邮箱和手机立即绑定

批处理文件中, time函数怎么只取到秒?

批处理文件中, time函数怎么只取到秒?

繁星点点滴滴 2019-02-06 14:07:29
我oracle 做了个自动备份的,但是如果用 exp budget/budget file=c:\filename%time%.dmp 导出会不成功,因为 %time%取了毫秒,里面就有个点,所以导出文件的时候创建文件名就有2个点存在,导致导出不成功。现在不需要那个毫秒。请问time函数改怎么写。
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

首先,用 cmd /v:on 或 cmd /von 启动 cmd ,启用延迟扩充,可以用叹号引用变量,详细用法:
cmd /?
set /?
setlocal /?

1. %time::=% 是把变量 time 中的 : 替换为空,就是去掉冒号,详细用法 set /?
2. set t=%time::=% &echo !t:.=!
3. set t=%time::=-% &echo !t:.=-!

查看完整回答
反对 回复 2019-03-22
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

真的是只去掉点后的把%time%写成%time:~,8%就行了,但文件名是不允许有冒号的,建议
在此行前加三行
set "t=%time:~,8%"
set "t=%t::=%"
set "timeN=%t: =0%"
意思是 取%time%的前8位、去 : 符、如有空格改成0
然后在应用%time%位置改用 %timeN%

查看完整回答
反对 回复 2019-03-22
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

@ECHO OFF
setlocal EnableDelayedExpansion
:TIME
CLS
SET T=%time%
SET S=!T:~0,1!
IF /I !S! GEQ 1 (
SET FT1=!T:~0,2!!T:~3,2!!T:~6,2!
SET FT2=!T:~0,2!点!T:~3,2!分!T:~6,2!
) ELSE (
SET FT1=0!T:~1,1!!T:~3,2!!T:~6,2!
SET FT2=0!T:~1,1!点!T:~3,2!分!T:~6,2!
)
ECHO.!FT1!
ECHO.!FT2!
PING -n 2 LOCALHOST>NUL
GOTO TIME




查看完整回答
反对 回复 2019-03-22
  • 3 回答
  • 0 关注
  • 767 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信