1
timonwong 2013-08-01 14:02:41 +08:00 1
a) "1" 代表stdout, batch 就是这样parse的,不加file descriptor的话默认就是1, stderr不使用 "2>" 重定向的话会直接写到控制台。
b) 时间日期问题我觉得是环境不同,你在命令行里面和Explorer里面的日期格式可能不一样。我觉得最好还是使用这种方法获取时间: ``` setlocal EnableDelayedExpansion for /F "skip=1 tokens=1-3" %%A in ('WMIC Path Win32_LocalTime Get Day^,Month^,Year /Format:table') do ( if "%%B" neq "" ( set year=%%C set month=0%%B set day=0%%A ) ) :: remove additional leading zeros set month=%month:~-2% set day=%day:~-2% :: your logic here ``` |
2
vmebeh 2013-08-01 14:09:58 +08:00 1
批处理文件里面变量要用%%,
|
3
vmebeh 2013-08-01 14:12:51 +08:00
for /? 里面有说明。
|
4
jackyzy823 OP @timonwong 其实文件名称不重要,关键是双击这个bat并没有生成文件,而用cmd命令行运行这个bat可以生成,而我需要双击生成
|
5
timonwong 2013-08-01 14:16:41 +08:00 1
@jackyzy823
刚才代码我试过了,可以双击生成。我之前想的就是date time的区域设置, 你的命令行控制台和Windows Explorer有所不同,直接导致了文件名错误。 调试你可以简单地在最后加个pause看问题具体出在哪儿。 |
6
jackyzy823 OP @timonwong 我用普通的文件名也测试过。。。情况依旧 以及感谢您帮我测试。
|
7
timonwong 2013-08-01 14:24:08 +08:00 1
@jackyzy823
那总有错误信息啊,最后加pause看看之前有什么错误? |
8
jackyzy823 OP @timonwong 就单纯地什么都没发生,难道在批处理中需要设置当前路径?
|
9
jackyzy823 OP @timonwong 嗯,的确是忘记设置路径了,以及感谢您的帮助。
|
10
jackyzy823 OP @timonwong 不对。。在注册表里给cmd启动是增加了一个AutoRun=。=导致改了路径。。。==|||
|