【发布时间】:2014-11-05 09:56:39
【问题描述】:
我想从具有可变驱动器名称的驱动器调用 exe 文件。 该代码首先在系统的每个驱动器中搜索路径,一旦找到它就会进入我要调用命令-bpimagelist的If条件。
下面是给出异常错误的代码。
for($pat=67 ;$pat -le 87 ;$pat++)
{
$y = [char]$pat;
$path = $y+":\Veritas\Netbackup\bin\admincmd"
If((Test-Path $path))
{
Write-Host $path "is found in" $y "drive"
Invoke-Item $y":\Veritas\Netbackup\bin\admincmd\bpimagelist -client abc.ge.com -d 11/01/2014 -U"
break
}
Else
{
continue
}
}
错误:
PS C:\Documents and Settings\abala\Desktop> .\veritasscript.ps1
D:\Veritas\Netbackup\bin\admincmd is found in D drive
Invoke-Item : Cannot find path 'C:\Veritas\Netbackup\bin\admincmd\bpimagelist -
client hclinnobpm01.jnj.com -d 11\01\2014 -U' because it does not exist.
At C:\Documents and Settings\admin_broy5\Desktop\veritasscript.ps1:8 char:17
+ Invoke-Item <<<< $y":\Veritas\Netbackup\bin\admincmd\bpimagelist -clien
t hclinnobpm01.jnj.com -d 11/01/2014 -U"
================================================ ==
我不确定为什么当 $y 的当前值为 D 并且在 Write-Host 行中它打印为在 D 驱动器中找到的路径时错误显示 C:\Veritas。 有人可以建议一种方法来调用上面的 exe 文件吗?
【问题讨论】:
-
是的,它确实存在于 D 盘中,这就是为什么输出的第一行是 - “D 盘中找到 D:\Veritas\Netbackup\bin\admincmd”
-
不,先生,即使在 TestPath 中包含 bpimagelist 也不起作用。出于测试目的,目前我正在尝试使用以下代码调用位于 C:\Windows\syste32 的 fsutil.exe,但即使这样也不起作用。 Invoke-Expression "volume diskfree "$y":" 有什么建议吗?
标签: powershell