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

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

繁星点点滴滴
浏览 798回答 3
3回答

拉丁的传说

首先,用 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:.=-!

元芳怎么了

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

哆啦的时光机

@ECHO OFFsetlocal EnableDelayedExpansion:TIMECLSSET 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>NULGOTO TIME
打开App,查看更多内容
随时随地看视频慕课网APP