Ответ 1
Если вы выполняете эту строку из PowerShell, а не из CMD, вы можете использовать синтаксис переменных среды PowerShell:
PS C:\> & "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
У меня есть следующее, которое используется как пакетный файл, запускающий powershell (слишком длинный, чтобы перейти, но он используется в другом script).
В любом случае, я заметил, что% systemroot%\temp и% systemroot% не работают.
Любая идея, как я могу это исправить?
%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -File %SystemRoot%\TEMP\ROFS\testing_script_log.ps1
Спасибо,
Если вы выполняете эту строку из PowerShell, а не из CMD, вы можете использовать синтаксис переменных среды PowerShell:
PS C:\> & "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
Вы можете использовать [Environment]:: ExpandEnvironmentVariables для расширения переменных среды внутри строки старомодным способом.
$s = '%systemroot%\temp'
[Environment]::ExpandEnvironmentVariables($s)
Успешно проверено с помощью кода С#.
// расположение файла - Пользовательские переменные string fileLocation = Environment.GetEnvironmentVariable( "AZURE_FILE_PATH", EnvironmentVariableTarget.User); // расположение файла - системные переменные string fileLocation = Environment.GetEnvironmentVariable( "AZURE_FILE_PATH", EnvironmentVariableTarget.Machine);
В Powershell script
& "D:\Visual_Studio_Workspace\AzureUpload\AzureUpload\bin\Debug\AzureUpload.exe"
AzureUpload.exe - содержит код выше кода С# в качестве консольного приложения (Visual_Studio_Workspace\AzureUpload\AzureUpload\bin\Debug {.exe расположение файла})