Требуемая функциональность: этот сценарий выполняет итерацию по всем текущим экземплярам проводника Windows и
- создает / сохраняет новый сценарий PowerShell для повторного их открытия.
- отображает содержимоесохраненный сценарий в текущем окне PowerShell, позволяющий пользователю копировать / вставлять в то же окно PowerShell, а также повторно открывать их оттуда
Вот мой текущий сценарий:
# Windows_FileExplorer_ListAllCurrentPaths.ps1
# Based on :: https://stackoverflow.com/a/31349468/1327508
# cls
"# $($env:computername) @ $([System.DateTime]::Now.ToString("yyyy-MM-dd hh:mm:ss"))`r`n" | out-file .\Windows_FileExplorer_OpenLastSavedPaths.ps1
"# PowerShell Script to OpenLastSavedPaths for Windows FileExplorer`r`n" | out-file -append .\Windows_FileExplorer_OpenLastSavedPaths.ps1
$app = New-Object -COM 'Shell.Application'
# $app.Windows() | Select-Object -Property * #
# $app.Windows() | Where-Object {$_.LocationURL -eq ''} | Select-Object * #
$app.Windows() |
Where-Object {$_.Name -eq 'File Explorer'} |
Select-Object LocationURL, LocationName, Name |
% {
$_.LocationURL = [regex]::Replace($_.LocationURL, "file:///", "ii ");
return $_;
} |
#foreach { $_.LocationURL } |
foreach { if ($_.LocationURL.length -gt 0) {$_.LocationURL} Else {"# [" + $_.Name + "] ? SearchWindow $([char]0x00BF) NoPath ? [locURL.length === " + $_.LocationURL.length + "] [" + $_.LocationName + "]"} } |
out-file -append .\Windows_FileExplorer_OpenLastSavedPaths.ps1
"`r`n" | out-file -append .\Windows_FileExplorer_OpenLastSavedPaths.ps1
"# Successfully Created PowerShell Script File:`r`n" | out-file -append .\Windows_FileExplorer_OpenLastSavedPaths.ps1
"# .\Windows_FileExplorer_OpenLastSavedPaths.ps1`r`n" | out-file -append .\Windows_FileExplorer_OpenLastSavedPaths.ps1
"`r`n" | out-file -append .\Windows_FileExplorer_OpenLastSavedPaths.ps1
get-Content .\Windows_FileExplorer_OpenLastSavedPaths.ps1
... проблема со сценарием заключается в том, что для экземпляров Windows Explorer, которые в данный момент выводят «результаты поиска» из запроса (т. Е. В поле поиска вы вводите size:gigantic AND name:42
и нажимаете <Enter>
), тогда мой сценарий будетсгенерировать следующее:
# [File Explorer] ? SearchWindow ¿ NoPath ? [locURL.length === 0] [size:gigantic AND name:42]
... также в настоящее время прокомментировано в сценарии:
$app.Windows() | Where-Object {$_.LocationURL -eq ''} | Select-Object *
... потому что я пытался найти, где находится текущее значение "Адресная строка"есть, но ничего не показалось актуальным.