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