Batch file 变量内部的变量

Batch file 变量内部的变量,batch-file,cmd,Batch File,Cmd,所以,我正在尝试编写一个批处理文件,它将接受我的输入,将其放入我创建的模板中,并将其放入文本文件中 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" se

所以,我正在尝试编写一个批处理文件,它将接受我的输入,将其放入我创建的模板中,并将其放入文本文件中

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%

我很没经验,所以,如果这是显而易见的,请原谅我

不要为变量指定双引号,但要使用双引号引用
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%"

在我的系统上没有错误-Windows 10-您运行的是什么版本?不要为变量指定双引号。仅在使用变量时使用双引号。从输出和FNAME变量中删除引号。那么您的最后一行应该是
echo**%VarOne%**>%FNAME%”