c++ 将字符写入批处理文件
c++ Write Chars into Batch file
为什么这会在"%"处给出错误作为不正确的格式化特殊字符。
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!
相关文章:
- 如何在 c++ 窗口中将参数和返回的退出值传递到批处理文件/从批处理文件获取返回的退出值
- 从之前添加的批处理文件中删除单词
- 无法从C++ Windows 服务执行批处理文件
- 如何将批处理文件的输出读取到C 中的字符串中
- cmake:生成批处理文件调用cl.exe
- 如何运行批处理文件和读取输出
- GetCommandLine():无法从批处理文件(GCC-Compiler)传递多行参数
- exe文件不被识别为内部或外部命令,可操作的程序或批处理文件在C++
- 您如何使用System()调用带有引号的参数的批处理文件
- 重命名批处理文件(删除名称中的一些符号)(python/matlab/shell)
- 对桌面进行了更改.ini使用批处理文件,但文件夹图标不会更改
- 如何将字符串转换为批处理文件中的整数
- 为什么我不能在Windows Server 2008中使用System()从服务启动批处理文件
- 通过批处理文件在多个文件上添加标头
- 替代System(),用于在程序中运行批处理文件
- 在批处理文件上进行C++fstream写入,然后结束,没有剩余的代码行
- 创建 Windows 服务和批处理文件
- c++ 使用创建过程执行批处理文件
- c++ 将字符写入批处理文件
- 批处理文件无法使用启动命令