Batch file 如何将文本文件的标题设置为批处理文件中的变量?

Batch file 如何将文本文件的标题设置为批处理文件中的变量?,batch-file,text-files,Batch File,Text Files,我想尝试允许批处理文件的用户使用文本文件的自定义标题创建自己的文本文件。我遇到的问题是,试图创建的文本文件没有被创建。以下是我所做的: Echo Title your book. set /p BookTitle= >"%BookTitle% | by: %PlayerName%.txt" echo %Story% 我无法得到@SomethingDark建议使用^ |工作,但通过删除:并用u或-您的批处理替换|工作正常 |字符对于Windows中的文件名无效 DOS和Windows不允许

我想尝试允许批处理文件的用户使用文本文件的自定义标题创建自己的文本文件。我遇到的问题是,试图创建的文本文件没有被创建。以下是我所做的:

Echo Title your book.
set /p BookTitle=
>"%BookTitle% | by: %PlayerName%.txt" echo %Story%

我无法得到@SomethingDark建议使用^ |工作,但通过删除:并用u或-您的批处理替换|工作正常

|字符对于Windows中的文件名无效


DOS和Windows不允许冒号:在文件名或目录名中。管道也会把事情搞得一团糟。使用插入符号()来转义。等等,我误读了你试图用作文件名的内容。你根本不能包括管道。只需完全避免使用它。谢谢,我不会使用管道,或者如果转义^^^^^不起作用,您可能还必须转义^^^^ ^如果^ ^不起作用。您尝试过双重转义-谢谢您的建议-尽管现在发现这是针对使用MSDN文章编辑的有效文件名字符的上游转义。出于某种原因,我的大脑拒绝接受他试图使用管道作为文件名的一部分。就我个人而言,我会将文件命名为%PlayerName%-%BookTitle%.txt或者更好,制作一个%PlayerName%文件夹并将%BookTitle%.txt放在其中。谢谢大家的帮助,我的问题现在解决了!
echo Title your book.
set /p BookTitle=
>"%BookTitle% _ by %PlayerName%.txt" echo %Story%