%temp%等无效

时间:2011-11-08 13:02:32

标签: powershell

我有以下用作启动powershell的批处理文件(过了很长时间但是在另一个脚本中使用)。

无论如何,我注意到%systemroot%\ temp和%systemroot%不起作用。

知道如何解决这个问题吗?

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

谢谢,

3 个答案:

答案 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文件位置})