我正试图运行这一行:
for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a
从命令行,但收到错误:
%%a was unexpected at this time.
然后我搜索并发现:
问题是在批处理文件上转义%我需要添加其中两个,但在命令行中我只需要其中一个。如何编写兼容命令行和批处理文件的文件,将其保存在同一行代码中?
答案 0 :(得分:3)
不是一个班轮,但是你可以住两行
set "pp=%%"
for /f "tokens=1* delims=" %pp:~-1%a in ('date /T') do set datestr=%pp:~-1%a
答案 1 :(得分:3)
为什么不使用
set "datestr=%date%"
会将datestr
设置为date
的当前值作为内置魔术变量吗?
当然,这不包括可能需要的操作,因为%date%
和date /t
都以用户选择的格式返回日期 - 没有直接可用的通用格式批量生产;您需要使用wmic
,这可能是用户可能使用的,也可能是不可用的。
答案 2 :(得分:1)
如果从命令行执行此操作,则需要单%
:
for /f "tokens=1* delims=" %a in ('date /T') do set datestr=%a
双倍百分比用于从.bat或.cmd文件运行。