我正在编写一个脚本来自动备份文件到USB闪存。并非所有记忆棒都具有相同的驱动器ID。该脚本搜索驱动器E:,F:,G:和H:的路径,并报告如果未连接闪存驱动器则无法找到驱动器。如果随后连接了闪存驱动器,则测试仍会返回False。
试试这个。在Powershell控制台中插入USB记忆棒(已知为驱动器E:),测试E:的路径。它返回True。现在移除记忆棒并测试驱动器E:的路径,并按预期返回False。现在将USB记忆棒重新插入并重复测试路径E:cmdlet并返回False。为什么呢?
答案 0 :(得分:0)
对我来说,它有效,
Test-Path d:\
返回True,只需要一些时间。
您可以使用此功能在出现音量时接收事件:
$query = "SELECT * FROM Win32_VolumeChangeEvent"
Register-WMIEvent -Query $query -Action {$global:a=$Args[0];$global:b=$Args[1];$global:c=$event;write-host "done"}
# Now plug your stick
# Then have a look to :
$b.NewEvent
__GENUS : 2
__CLASS : Win32_VolumeChangeEvent
__SUPERCLASS : Win32_DeviceChangeEvent
__DYNASTY : __SystemClass
__RELPATH :
__PROPERTY_COUNT : 4
__DERIVATION : {Win32_DeviceChangeEvent, __ExtrinsicEvent, __Event, __IndicationRelated...}
__SERVER :
__NAMESPACE :
__PATH :
DriveName : D:
EventType : 2
SECURITY_DESCRIPTOR :
TIME_CREATED : 130368370362465996
PSComputerName :
# Now unplug your stick
# Then have a look to :
$b.NewEvent
__GENUS : 2
__CLASS : Win32_VolumeChangeEvent
__SUPERCLASS : Win32_DeviceChangeEvent
__DYNASTY : __SystemClass
__RELPATH :
__PROPERTY_COUNT : 4
__DERIVATION : {Win32_DeviceChangeEvent, __ExtrinsicEvent, __Event, __IndicationRelated...}
__SERVER :
__NAMESPACE :
__PATH :
DriveName : D:
EventType : 3
SECURITY_DESCRIPTOR :
TIME_CREATED : 130368373636563263
PSComputerName :