为什么命令:键入“%filename%”失败

时间:2017-12-17 22:26:14

标签: batch-file

命令

type “File Name with Spaces.txt”

作品!!

但是

set  “Fname=File Name with Spaces.txt”

type “%Fname%”

或者

type “!Fname!”

失败!!

消息:The system cannot find the file specified

...

1 个答案:

答案 0 :(得分:0)

set Fname=File Name with Spaces.txt
type "%Fname%"

应该有效。在这种情况下,您并不需要set命令中的引号。但是,当您在type命令中访问变量的内容时,它们非常重要。

修改
我回到电脑里,我可以再次测试一下。 @Squashman和@Mofi关于你应该使用直接双引号")以及说set "Fname=File Name & Spaces.txt"是合法且经常推荐的语法的要点是对的。 。不过,我还想提一下主题的另一种可能的变化。当你这样做

set Fname="File Name & Spaces.txt"

引号将成为存储变量的一部分:

echo %Fname%
> "File Name & Spaces.txt"

然后可以在没有引号的情况下发出引用包含空格和&符号的文件名的type命令:

type %Fname%

如果您想访问内容而不周围的引号,您仍然可以

echo %Fname:"=%
> File Name with Spaces.txt

(有关cmd中变量处理的更多详细信息,请参阅set /?。)