Visual Studio 2019 如何设置输出文件文件名始终为全大写?
可以实现输出.cso文件名始终为全大写,根据你使用的Effect Compiler版本不同,可选择以下两种常用实现方案:
带配置界面的集成版本(参考下图配置界面)

这类多是集成在游戏引擎、图形开发IDE中的编译工具,不需要修改编译器核心逻辑,只要加编译后处理规则即可:
- 找到配置项中的*编译后事件(Post-build Event)*入口
- 新增对应系统的重命名命令,Windows环境可直接使用如下PowerShell命令:
Get-ChildItem 你的输出目录路径/*.cso | Rename-Item -NewName { $_.Name.ToUpper() } - 保存配置后重新编译即可,不管
Filename参数填写的是大写还是小写,最终输出的.cso文件都会自动转换为全大写格式。
命令行版本(fxc/dxc等原生编译器)
直接在你调用编译器的脚本中增加文件名转大写的逻辑即可,以下是两种常用脚本的示例:
- Windows Bat脚本示例:
:: 先定义原始输出文件名,可替换为你传入的Filename参数变量 set RAW_FILENAME=test.cso :: 批量转换为全大写 for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do set "RAW_FILENAME=!RAW_FILENAME:%%a=%%a!" :: 调用编译器输出全大写文件名的cso文件 fxc.exe /T fx_5_0 /Fo %RAW_FILENAME% 你的特效源文件路径.fx - Python脚本示例:
import subprocess raw_filename = "test.cso" # 转换为全大写 upper_filename = raw_filename.upper() # 调用编译器 subprocess.run(["fxc.exe", "/T", "fx_5_0", "/Fo", upper_filename, "你的特效源文件路径.fx"])
补充说明:如果你使用的是不支持自定义后处理的闭源编译工具,可以额外写一个简单的目录监听脚本,只要检测到输出目录下新生成的.cso文件,就自动将其重命名为全大写格式,适配所有场景。
内容的提问来源于stack exchange,提问作者Gregor Sattel
相关产品推荐
相关产品推荐

