请解释批处理命令

时间:2013-04-25 19:16:53

标签: command-line batch-file

我想创建一个包含当前日期和时间名称的文件夹。 经过大量搜索后,我发现这实际上有效。

有人可以解释这些批处理命令的作用吗?

set timestamp=%DATE:/=-%@%TIME::=-%
set timestamp=%timestamp: =%
mkdir "%timestamp%"

2 个答案:

答案 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::=-%"