我尝试在PowerShell中使用环境变量,但我找到的示例似乎不起作用。这是我用来测试的脚本:
Get-ChildItem Env:
Write-Host "************"
$AlarmDatastore = Get-ChildItem Env:*VMWARE_ALARM_TARGET_NAME*
Write-Host "Var = " $AlarmDatastore.value
$Test = $env:VMWARE_ALARM_TARGET_NAME
Write-Host "Test = " $Test脚本的输出:
USERNAME ADMIN.GABRI
USERPROFILE C:\Users\admin.gabri
VMWARE_ALARM_ALARMVALUE Current values for metric/state
VMWARE_ALARM_DECLARINGSUMMARY ([Yellow metric Is above 10; Red metric Is a...
VMWARE_ALARM_EVENTDESCRIPTION Alarm 'Alarm 10 percent test with script' on ...
VMWARE_ALARM_ID alarm-601
VMWARE_ALARM_NAME Alarm 10 percent test with script
VMWARE_ALARM_NEWSTATUS Red
VMWARE_ALARM_OLDSTATUS Gray
VMWARE_ALARM_TARGET_ID datastore-12587
VMWARE_ALARM_TARGET_NAME VCD-VMFS-095-FAST-VNX-5400-04
VMWARE_ALARM_TRIGGERINGSUMM... Metric Disk Space actually used = 96
windir C:\Windows
************
Var = VCD-VMFS-095-FAST-VNX-5400-04
Test =为什么我只能使用: Get-ChildItem Env:*VMWARE_ALARM_TARGET_NAME*,而不是简单地通过$Test = $env:VMWARE_ALARM_TARGET_NAME来获取环境变量
发布于 2015-01-15 06:42:12
下面是一些可以尝试的东西:
#Use ${ } for complex variable names
${env:VMWARE_ALARM_TARGET_NAME}
#Or as part of a print statement use env directly (with or without ${env:}):
Write-Host "Test = $($env:VMWARE_ALARM_TARGET_NAME)"
#At an interactive prompt see if it can be tab completed
$env:VMWWARE #then tab to see if it shows up in auto complete此外,当您运行set时,查看cmd.exe显示的内容也是值得的。在Powershell类型中:
cmd
set
exit看看输出是什么样子。
发布于 2015-01-16 01:24:24
由于时间压力,我现在不得不这样做:
$AlarmTARGET_NAME = get-childitem Env:*VMWARE_ALARM_TARGET_NAME*
$AlarmNAME = get-childitem Env:*VMWARE_ALARM_NAME*
$AlarmEVENTDESCRIPTION = get-childitem Env:*VMWARE_ALARM_EVENTDESCRIPTION*
$AlarmDECLARINGSUMMARY = get-childitem Env:*VMWARE_ALARM_DECLARINGSUMMARY*
$AlarmVALUE = get-childitem Env:*VMWARE_ALARM_ALARMVALUE*不是很干净的代码,但它可以工作。谢谢你所有的回复。
加布里
https://stackoverflow.com/questions/27953070
复制相似问题