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