我有以下用作启动powershell的批处理文件(过了很长时间但是在另一个脚本中使用)。
无论如何,我注意到%systemroot%\ temp和%systemroot%不起作用。
知道如何解决这个问题吗?
%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -File %SystemRoot%\TEMP\ROFS\testing_script_log.ps1
谢谢,
答案 0 :(得分:40)
如果从PowerShell而不是从CMD执行该行,则可以使用PowerShell环境变量语法:
PS C:\> & "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
答案 1 :(得分:11)
您可以使用[Environment] :: ExpandEnvironmentVariables以旧式方式扩展字符串中的环境变量。
$s = '%systemroot%\temp'
[Environment]::ExpandEnvironmentVariables($s)
答案 2 :(得分:0)
使用以下代码C#成功验证。
// 文件位置 - 用户变量 string fileLocation = Environment.GetEnvironmentVariable(“AZURE_FILE_PATH”,EnvironmentVariableTarget.User); // 文件位置 - 系统变量 string fileLocation = Environment.GetEnvironmentVariable(“AZURE_FILE_PATH”,EnvironmentVariableTarget.Machine);
关于Powershell脚本
& "D:\Visual_Studio_Workspace\AzureUpload\AzureUpload\bin\Debug\AzureUpload.exe"
AzureUpload.exe - 包含上述代码C#代码作为控制台应用程序(Visual_Studio_Workspace \ AzureUpload \ AzureUpload \ bin \ Debug {.exe文件位置})