% temp% и т. д. не работает - PullRequest
       38

% temp% и т. д. не работает

22 голосов
/ 08 ноября 2011

У меня есть ниже, что используется в качестве пакетного файла, который запускает PowerShell (слишком долго, чтобы перейти, но он используется в другом скрипте).

В любом случае, я заметил% systemroot% \ temp и%systemroot% не работает.

Есть идеи, как мне это исправить?

%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -File %SystemRoot%\TEMP\ROFS\testing_script_log.ps1

Спасибо,

Ответы [ 3 ]

40 голосов
/ 08 ноября 2011

Если вы выполняете эту строку из PowerShell, а не из CMD, вы можете использовать синтаксис переменной среды PowerShell:

PS C:\> & "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
11 голосов
/ 08 ноября 2011

Вы можете использовать [Environment] :: ExpandEnvironmentVariables для расширения переменных среды внутри строки старомодным способом.

$s = '%systemroot%\temp'
[Environment]::ExpandEnvironmentVariables($s)
0 голосов
/ 16 марта 2017

Успешно подтверждено с кодом ниже C #.

// расположение файла - переменные пользователя строка 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 расположение файла})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...