আমি এসডি কার্ড আছে কিনা তা সনাক্ত করতে পাওয়ারশেল ব্যবহার করতে চাই। কোনও এসডি কার্ড শনাক্ত করার পরে, পাওয়ারশেল স্ক্রিপ্টের স্বয়ংক্রিয়ভাবে কিছু ফাইল এসডি কার্ডে অনুলিপি করা উচিত।
আমি ইতিমধ্যে একটি পিএস স্ক্রিপ্ট খুঁজে পেয়েছি এবং চেষ্টা করেছি, তবে এটি কেবল ইউএসবি স্টিকগুলি সনাক্ত করে।
Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange
write-host (get-date -format s) " Beginning script..."
do{
$newEvent = Wait-Event -SourceIdentifier volumeChange
$eventType = $newEvent.SourceEventArgs.NewEvent.EventType
$eventTypeName = switch($eventType)
{
1 {"Configuration changed"}
2 {"Device arrival"}
3 {"Device removal"}
4 {"docking"}
}
write-host (get-date -format s) " Event detected = " $eventTypeName
if ($eventType -eq 2)
{
$driveLetter = $newEvent.SourceEventArgs.NewEvent.DriveName
$driveLabel = ([wmi]"Win32_LogicalDisk='$driveLetter'").VolumeName
write-host (get-date -format s) " Drive name = " $driveLetter
write-host (get-date -format s) " Drive label = " $driveLabel
# Execute process if drive matches specified condition(s)
if ($driveLetter -eq 'E:' -and $driveLabel -eq 'Test 1')
{
write-host (get-date -format s) " Starting task in 3 seconds..."
start-sleep -seconds 3
start-process "E:test.bat"
}
}
Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop until next event
Unregister-Event -SourceIdentifier volumeChange
হাই নিক্সদা এবং আপনার জবাবের জন্য আপনাকে ধন্যবাদ। আমি ইতিমধ্যে স্ক্রিপ্ট পরিবর্তন করেছি তবে এটি এখনও এসডি কার্ড সনাক্ত করতে পারে না। স্ক্রিপ্টটি কেন কাজ করে না তার মূল কারণ (আপনার মনে হয়) যদি আপনার অন্তর্নির্মিত এসডি কার্ড রিডার থাকে এবং আপনি এসডি কার্ডটি বের করেন, আপনি এখনও নির্ধারিত চিঠির সাহায্যে ডিস্ক ম্যানেজমেন্টের অধীনে কার্ড রিডার খুঁজে পেতে সক্ষম হন।
—
বলুন
if ($eventType -eq 2)
করার চেষ্টা করুনif ($eventType -eq 4)
। স্ক্রিপ্টটি তখন ডিভাইস আগমনের জন্য নজর রাখে না (নতুন ড্রাইভ চিঠি যুক্ত?) বরং নতুন হার্ডওয়্যার ডকিংয়ের জন্য। আমিও ধরে নিলাম যে আপনি ইতিমধ্যেif ($driveLetter -eq 'E:' -and $driveLabel -eq 'Test 1')
নিজের প্রয়োজনে বদলে গেছেন?