我找到了一个可以在 cmd 窗口中使用时弹出 USB 驱动器的单行命令:
powershell -command "(New-Object -comObject Shell.Application).NameSpace(17).ParseName('F:').InvokeVerb('Eject')"
不幸的是,这在我的计算机上不起作用。它只会输出一个空行。不知怎的,我发现如果我在代码中添加“-noexit”开关,它就可以完美运行。
powershell -noexit -command "(New-Object -comObject Shell.Application).NameSpace(17).ParseName('F:').InvokeVerb('Eject')"
但是我希望它能够无缝执行。有什么方法可以解决这个问题吗?
答案1
基于 这个答案,以下表述可能会更好:
powershell.exe -Command $obj = (New-Object -comObject Shell.Application).namespace(17).ParseName('F:\');$Type = $obj.Type;while ($Type-eq 'USB Drive'){Write-Host 'Removing drive';$obj.InvokeVerb('Eject');$Type= $obj.Type}