我正在使用批处理文件来定义一些将在我的程序中使用的变量。我希望批处理文件更改环境变量并在我的代码中使用它,但是它现在正在工作-宏未更改。
更具体和清楚:
我有一个创建DLL并设置其版本的程序
在项目的通用设置中-我创建了一个新的宏(通用属性->用户宏):TEST_VER = 5
现在我要添加一个批处理文件,该文件将在预构建命令中运行并更改TESTER的值
我在批处理文件中写了这个:
set TEST_VER=9
并在预构建中使用批处理的路径。
但是它无法识别。仍然使用5作为值
我虽然在做:该项目的特点->资源->一般并添加:TEST_VER = $(TEST_VER)仍然没用
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9RNDBoMy5qcGcifQ==” alt =“在此处输入图像描述”>
有办法吗?
谢谢!
当Visual Studio启动程序时,它将在新的子进程中运行该程序。在这种情况下,这是一个新的CMD.EXE,即命令提示符外壳。在子流程(子流程)中对环境所做的更改,对父流程没有影响。 Visual Studio有自己的一组环境变量,它在启动时会继承。您的批处理文件无法更改这些值。您无法按照自己的方式去做。
如果您愿意的话。...
设置ABC = 123
然后,您将不能使用$(ABC),因为在将$(ABC)交给命令行运行之前,已对其进行处理。
您必须使用命令行所用的%ABC%。它不知道$(ABC)是什么,因为只有Visual Studio才能理解。
现在使情况更糟的是,Visual Studio事件编辑器使用%作为转义字符,因此您需要直接在vcxproj文件中的记事本中编辑事件文本,以避免转义。