首页 > 解决方案 > 变量中的变量

问题描述

因此,我正在尝试编写一个批处理文件,它将接受我的输入,将其插入我创建的模板中,然后将其放入文本文件中。

set Output="%USERPROFILE%\desktop"

set /p VarOne=Example

echo ** %VarOne% ** > %Output%\%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt

这工作正常,但如果我这样做,我会收到拒绝访问错误:

set Output="%USERPROFILE%\desktop"
set FNAME="%Output%\%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt"

set /p VarOne=Example

echo ** %VarOne% ** > %FNAME%

我很缺乏经验,如果很明显,请原谅我。

标签: batch-filecmd

解决方案


不要为变量分配双引号,但要使用它们来引用SET语句作为保护特殊字符的最佳实践。

set "Output=%USERPROFILE%\desktop"
set "FNAME=%Output%\%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt"

set /p VarOne=Example

echo ** %VarOne% ** >"%FNAME%"

推荐阅读