Windows?批处理的应用小结(ProtoBuf编译自动化工具)(批处理编辑工具)万万没想到

随心笔谈9个月前更新 admin
197 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

本文介绍了如何在批处理脚本中实现Protobuf协议的编译。首先,文章详细说明了如何关闭批处理脚本的回显输出(@echo off),并使用`SET`命令为变量赋值。通过`SET CURRENT_PATH=%cd%`和`SET PROTOC_PATH=%CURRENT_PATH%`,用户可以将当前脚本的工作路径和Protobuf编译路径设置为相同的值。接着,通过`SET PATH=%PATH%;%PROTOC_PATH%`将 Protobuf 的编译路径添加到系统路径中,以便编译器能够识别必要的源文件。 文章进一步介绍了如何使用`echo`命令在DOS界面中打印消息,以及如何编译Protobuf协议到C++和C#代码。通过命令`protoc.exe --cpp_out="%target_path%/" --proto_path="https://www.jb51.net/article/" player.proto`,用户可以在命令提示符窗口中编译Protobuf协议文件。需要注意的是,由于`@echo off`的使用,这些命令不会在显示器上显示,但在控制台中仍然可以正常执行。 整篇文章强调了批处理脚本的灵活性和高效性,尤其是在处理 Protobuf 协议编译时,通过环境变量和命令的合理配置,能够快速实现目标。文章还提到了一些注意事项,如特殊符号的使用和环境变量的临时性,帮助读者更好地理解和应用相关技术。

@echo off
rem echo off:关闭回显,批处理中的每一条命令都不会显示在显示器上。而echo off本身也是一条命令,如果不想让其显示,只需在前方加@符号即可。

SET CURRENT_PATH=%cd%
rem 注意,SET等号左右两边不能有空格
rem 将等号右侧的值赋值给等号左侧的变量;
rem 使用%包裹的字符(字符串)是一个变量;
rem %cd%:点击的bat脚本的工作路径(最开始点击的bat脚本所在的路径)。

SET PROTOC_PATH=%CURRENT_PATH%

SET PATH=%PATH%;%PROTOC_PATH%
rem 将PROTOC_PATH所指向的路径添加到系统PATH环境变量中去(并不会永久改变环境变量,是临时性的)

set target_path=.
echo 编译: player.proto cpp && “%PROTOC_PATH%\protoc.exe” –cpp_out=”%target_path%/” –proto_path “https://www.jb51.net/article/” player.proto
rem echo + message,用来在DOS界面打印消息,类似于C语言的printf。
rem &&符号在第三部分:常用特殊符号中有介绍,不再叙述。
rem 由于一开始开启@echo off,而&&后面部分为一条命令(将ProtoBuf源文件编译为C++源文件,包括.h、.cc文件),则在DOS界面中是不会显示的,即@echo off的屏幕效果不会因为&&而失效。

echo 编译: player.proto csharp && “%PROTOC_PATH%\protoc.exe” –csharp_out=”%target_path%/” –proto_path “https://www.jb51.net/article/” player.proto
rem 原理同上。

echo 操作完成,按任意键退出
echo 完成时间 %date:~0,10% %time:~0,8%
rem %date:~0,10%是批处理中用于取日期的命令。~0,10%类似于字符串截取。
rem %time:~0,8%是批处理中用于取时间的命令。~0,8%类似于字符串截取。

pause>nul&exit
rem pause是批处理中按任意键退出,但是由于会显示一行中文,故使用>nul,用于屏幕标准输出在屏幕上的显示,即“按任意键退出”该行中文不会显示在DOS界面中。&符号的作用在第三部分:常用特殊符号已经介绍。
rem exit命名用于退出DOS控制台,当我们按任意键退出时,执行exit。

© 版权声明

相关文章