批处理time的变量问题!

来源:百度知道 编辑:UC知道 时间:2024/06/14 17:04:48
比如在cmd中输入echo %time%以后,显示时间为12:30:30.30
输入echo %time::=%以后,显示时间为123030.30【把符号:去掉了】

1.谁知道这是为什么?
2.如果我想把12:30:30.30改为12303030【把中间的符号都去掉】用什么命令?
3.还有,用什么命令可以把12:30:30.30改为12-30-30-30?

谢谢大家啦!帮我解决一下

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

1.%time::=%把它分解,就是 %time: ":=" % 就是“冒号等于空”的意思,去掉所有冒号

2.不用那么麻烦:

set s=%time::=%
echo %s:.=% “.=”就是把.替换为空

3.set s=%time::=-% :等于-
set s=%s:.=-% .等于-

望采纳

这是set替换字符串,你用楼上说的,CMD下set /?就可以看到使用方法

下面是你要的代码

保存为*.bat文件执行

@echo off
set a=%time: =0%
set b=%a::=%
set c=%b:.=%

set d=%a::=-%
set e=%d:.=-%

echo %c%
echo %e%
pause