我不喜欢IDE,所以我安装了VS 2017 Build Tools,这样我就可以通过命令行工作。
安装进行得很顺利,在Windows CMD中一切正常,然而PowerShell更好用,我更喜欢使用PS。问题在于根据MSDN的说法:
“Visual C++命令行工具使用PATH、TMP、INCLUDE、LIB和LIBPATH环境变量,还可能使用特定于工具的环境变量。由于这些环境变量的值是针对您的安装特定的,并且可以通过产品更新或升级进行更改,因此我们建议您使用vcvarsall.bat或Developer Command Prompt快捷方式,而不是自己设置它们。有关编译器和链接器使用的特定环境变量的信息,请参阅CL环境变量和LINK环境变量。”
我不应该自己设置环境变量,这对我来说没问题,唯一的问题是当我在PS中运行
我想找出这些变量是什么。我在运行
我该如何解决这个问题?我考虑编写自己的
安装进行得很顺利,在Windows CMD中一切正常,然而PowerShell更好用,我更喜欢使用PS。问题在于根据MSDN的说法:
“Visual C++命令行工具使用PATH、TMP、INCLUDE、LIB和LIBPATH环境变量,还可能使用特定于工具的环境变量。由于这些环境变量的值是针对您的安装特定的,并且可以通过产品更新或升级进行更改,因此我们建议您使用vcvarsall.bat或Developer Command Prompt快捷方式,而不是自己设置它们。有关编译器和链接器使用的特定环境变量的信息,请参阅CL环境变量和LINK环境变量。”
我不应该自己设置环境变量,这对我来说没问题,唯一的问题是当我在PS中运行
vcvarsall.bat
时,没有环境变量发生改变。我对PS不熟悉,所以我猜测.bat
文件不能改变会话环境变量。如果是这样的话,那么我就无法使用PS。另外,CL
和LINK
变量从未出现过,我将在下面解释。我想找出这些变量是什么。我在运行
batch
文件之前和之后将所有变量输出到文本文件中,并编写了一个简短的Java程序来查找任何新的或修改过的内容。这些是它们。如您所见,CL
和LINK
变量不存在。我该如何解决这个问题?我考虑编写自己的
batch
文件,但如果第一个文件不起作用,我的文件为什么会起作用呢?我在附加的MSDN页面上没有看到任何关于如何使此功能在PowerShell中工作的链接。
CL 环境变量
和LINK 环境变量
是链接。你有没有点击它们看看它们添加了什么? - Ken Whitevcvarsall.bat
,并2)调用PowerShell。然后,PowerShell将使用为其准备的环境块运行。反过来不起作用,因为PowerShell本身不执行批处理文件--它依赖于cmd
来执行,作为子进程,它具有自己的环境块,不反映在其父进程上。 - Jeroen Mostertstart powershell
来尝试一下。如果我只是这样做,PS 就会在其默认窗口中打开,带有默认的背景等等。如果我执行start "" powershell
,它会在 CMD 窗口中打开 PS。有什么想法吗?再次感谢您的帮助,我担心我必须编写一些复杂的 PS 脚本。 - UngeheuerSTART
在所有方面的工作方式,这可能是另一个问题的主题。但是,您可以使用像procexp
这样的工具轻松验证start "" powershell
仍然只启动PowerShell,而不是cmd
。它的窗口只是看起来不同。没有所谓的"cmd
窗口",而是cmd
和PowerShell都使用控制台窗口(由conhost.exe
托管)。如果你真的想改变PowerShell的标题栏而不仅仅是学术好奇心,我会从PowerShell本身使用$host.UI.RawUI.WindowTitle
。 - Jeroen Mostert