请解释一下批处理命令
问题描述:
我想用当前日期和时间的名称创建一个文件夹。 搜索了很多后,我发现这实际上有效。请解释一下批处理命令
有人可以解释这些批处理命令的作用吗?
set timestamp=%DATE:/=-%@%TIME::=-%
set timestamp=%timestamp: =%
mkdir "%timestamp%"
答
set timestamp=%DATE:/=-%@%TIME::=-%
这是一个字符串替换。
1:
%DATE:/ = - %替代对象 “/” 字符为 “ - ” 字符日期变量
(见:在控制台上回声%DATE%)
第二:
添加 “@” 字符到DATE VAR后,时间VAR之前的字符串。
3:
%TIME :: = - %替代对象 “:” 字符为 “ - ” 字符。
(参见:回声%TIME%在控制台上)
set timestamp=%timestamp: =%
接下来在更换替代本身空格任何characarter(所以删除空格),但实际上任何空间给这样是没有必要的在你的示例代码中。
您可以了解更多有关变量的字符串替换此处http://ss64.com/nt/syntax-replace.html
你也可以简化您的代码“导致没有必要先设定值:
mkdir "%DATE:/=-%@%TIME::=-%"
答
插入线之间echo语句,你可以看到什么时间戳的值是
set timestamp=%DATE:/=-%@%TIME::=-%
echo %timestamp%
set timestamp=%timestamp: =%
echo %timestamp%
mkdir "%timestamp%"
基本上,代码只是从时间消除之日起,正斜杠和冒号,因为这些不是有效的目录名称替换他们与hypens。
阅读集/?环境变量替代以获得更好的想法。
伟大的答案电力币。谢谢!你可以投我的问题吗?在互联网上很难找到它,也可能会帮助其他人。我也需要一些声誉来投票你的答案,因为我有点新在这里 – 2013-04-25 20:03:09
当然没有问题,但如果我的答案解决了你的问题,使用接受按钮也接受我的答案。 PS:你有我的+1,但是从另一个人-1,所以你的问题有0代表 – ElektroStudios 2013-04-25 20:16:12
对不起。我不知道我可以在这个网站上私下与您联系,但似乎并不允许我发布另一个问题,因为这个帖子不符合我们的质量标准。但我还有一个问题:**我正在创建一个批处理文件,可以同时启动其他批处理文件。 我正在使用此代码来设置我需要在所有批处理文件中的时间变量。 如果我在每个批处理文件中使用相同的语法,我会得到不同的输出。 那么,我如何使这个变量通用的所有文件,我必须使用VB脚本? set timestamp =%DATE:/ = - %@%TIME :: = - %** bold ** – 2013-04-25 20:27:06