【发布时间】:2012-07-06 15:41:07
【问题描述】:
我知道你可以像这样在 DOS 中使用字符串操作:
echo %TIME%
echo %TIME:~0,2%
echo %TIME: =0%
这三个命令的输出是:
8:36:05.60
8
08:36:12.93
我想知道如何结合第二行和第三行得到这个输出:
08
我不能使用 set 来临时存储一个值,因为我想在命令行参数中使用这个字符串。
【问题讨论】:
我知道你可以像这样在 DOS 中使用字符串操作:
echo %TIME%
echo %TIME:~0,2%
echo %TIME: =0%
这三个命令的输出是:
8:36:05.60
8
08:36:12.93
我想知道如何结合第二行和第三行得到这个输出:
08
我不能使用 set 来临时存储一个值,因为我想在命令行参数中使用这个字符串。
【问题讨论】:
在纯 DOS 中,您没有嵌套语句。
除非您的应用程序(参数是)是控制台应用程序,否则您将没有控制台来解析您的环境变量(在运行框中,尝试记事本 c:\%TIME:~0,2%.txt 并查看发生)。
如果它是一个控制台应用程序,那么您将能够使用 env vars,但不解析,由 cmd 自己处理。
因此,您必须使用 cmd.exe 或批处理文件来启动您的应用程序,并且您可以在 SET 之间使用您需要的所有表达式。
【讨论】: