PowerShell - Test-path -


i have script gets drives on host , outputs text file. text file below -

d: e: f: g: 

i need test each drive path , if true assign variable.

i have following far not working. know super obvious, appreciated.

get-wmiobject win32_logicaldisk -filter "drivetype=3 , deviceid!='c:'" | select deviceid | format-table -hidetableheaders > c:\deviceid.txt -force $deviceid = get-content c:\deviceid.txt $deviceid | foreach {$_.trimend()} | ? {$_.trim() -ne '' } > c:\deviceid.txt  $deviceid = get-content c:\deviceid.txt $path = "$deviceid\apps\netprobent\" $pathexists = test-path $path  foreach-object ($deviceid in $deviceid) { if ($pathexists -eq $true) { $devicedrive = $deviceid} else  { $devicedrive = "c:"} } 

if need more information please let me know.

thanks below working.

i have come across method works

$folder = "apps\netprobent" get-psdrive | where-object { $_.root -match "[c-z]:\\" -and (test-path $(join-path $_.root $folder)) } 

what best method use?

you're saving result of test-path $pathexists-variable outside loop, before $deviceid exists. result false. variable never changes false every time inside loop. need run test-path inside loop.

also, should avoid saving , reading wmi-output file. try:

$devicedrive = "c:"  get-wmiobject win32_logicaldisk -filter "drivetype=3 , deviceid!='c:'" | where-object { test-path "$($_.deviceid)\apps\netprobent\" } | foreach-object {     $devicedrive = $_.deviceid } 

Comments

Popular posts from this blog

javascript - Laravel datatable invalid JSON response -

java - Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; -

sql server 2008 - My Sql Code Get An Error Of Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value '8:45 AM' to data type int -