c++ 将字符写入批处理文件

c++ Write Chars into Batch file

本文关键字:批处理文件 字符 c++      更新时间:2023-10-16

为什么这会在"%"处给出错误作为不正确的格式化特殊字符。

ofstream batch;
batch.open("C:tesfile.bat", ios::out);
batch << "@echo offn";
batch << "set Dir=C:Users%USERNAME%AppData n";

我也给了 c:\要创建 BAT 文件,它会在应用程序文件夹(放置应用程序的位置)创建 BAT 文件。

请帮忙。

您应该在

字符串中转义特殊字符,或者使用 C++11 个原始文本(在我看来更好的选择!)如下所示:

batch.open(R"(C:tesfile.bat)", ios::out);

在字符串中,您需要将反斜杠 ( ) 转义为 \ 。否则,编译器会认为您正在尝试插入特殊字符,例如n

batch.open("C:\tesfile.bat", ios::out);
batch << "@echo offn";
batch << "set Dir=C:\Users\%USERNAME%\AppData\ n";

作为一个思考练习,想象一下如果你没有逃脱反斜杠会发生什么:

batch.open("C:nifty_folder", ios::out); //n in "nifty" causes a newline!

事实上,您的原始代码产生了意想不到的后果!

batch.open("C:tesfile.bat", ios::out); //t is a tab!