我想创建一个包含当前日期和时间名称的文件夹。 经过大量搜索后,我发现这实际上有效。
有人可以解释这些批处理命令的作用吗?
set timestamp=%DATE:/=-%@%TIME::=-%
set timestamp=%timestamp: =%
mkdir "%timestamp%"
答案 0 :(得分:5)
在行之间插入echo语句,您可以看到timestamp的值是什么
set timestamp=%DATE:/=-%@%TIME::=-%
echo %timestamp%
set timestamp=%timestamp: =%
echo %timestamp%
mkdir "%timestamp%"
基本上,代码只是从日期和冒号中删除正斜杠,因为那些不是有效的目录名替换它们。
读取集/?环境变量替换以获得更好的想法。
答案 1 :(得分:4)
set timestamp=%DATE:/=-%@%TIME::=-%
这是一个字符串替换。
第一
%DATE:/ = - %在DATE变量中将“/”字符替换为“ - ”字符
(请参阅:控制台上的 Echo%DATE%)
第二
在DATE var之后和TIME var。之前的字符串中添加“@”字符。
第三
%TIME :: = - %将“:”字符替换为“ - ”字符。
(请参阅:控制台上的 Echo%Time%)
set timestamp=%timestamp: =%
接下来,替换中将空格替换为任何characarter(因此删除空格),但实际上给出了任何空格,因此在示例代码中不需要。
您可以在此处详细了解变量字符串替换:http://ss64.com/nt/syntax-replace.html
此外,您可以简化代码,因为无需先设置值:
mkdir "%DATE:/=-%@%TIME::=-%"