gpt4 book ai didi

用于弹出通过 USB 连接的设备的 powershell 命令第一次不起作用

转载 作者:行者123 更新时间:2023-12-04 10:34:51 24 4
gpt4 key购买 nike

我有一个 Java 应用程序,它与通过 USB 驱动器连接的设备进行交互。我想在处理后弹出设备。下面的命令有效,但我必须循环尝试以确保它被弹出。

powershell.exe ((New-Object -comObject Shell.Application).NameSpace(17).ParseName('E:\').InvokeVerb('Eject'))

不确定命令是否有任何问题。有时它会在 3 或 4 次后起作用。

任何人都可以帮忙吗?

在此处添加了屏幕截图:
enter image description here

最佳答案

我无法重现该错误,但在调用 Eject 动词时,驱动器对象的类型似乎从“USB 驱动器”更改为“可移动驱动器”。

您可能希望在例程中添加一个简短的脚本。就像是:

$obj = (New-Object -comObject Shell.Application).namespace(17).ParseName('E:\')
$Type = $obj.Type
while ($Type-eq 'USB Drive'){
$obj.InvokeVerb('Eject')
$Type= $obj.Type
}


这样您就不必多次运行代码并等待 PowerShell 启动。

这是单行的:

powershell.exe -Command {$obj = (New-Object -comObject Shell.Application).namespace(17).ParseName('E:\');$Type = $obj.Type;while ($Type-eq 'USB Drive'){Write-Host 'Removing drive';$obj.InvokeVerb('Eject');$Type= $obj.Type}}

如果你想在 cmd 中而不是在 PowerShell 中运行命令,你需要像这样格式化它:
powershell.exe -Command $obj = (New-Object -comObject Shell.Application).namespace(17).ParseName('E:\');$Type = $obj.Type;while ($Type-eq 'USB Drive'){Write-Host 'Removing drive';$obj.InvokeVerb('Eject');$Type= $obj.Type}

关于用于弹出通过 USB 连接的设备的 powershell 命令第一次不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60233343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com