Создать файл PowerShell для архивирования / повторного открытия всех текущих экземпляров проводника Windows - PullRequest
0 голосов
/ 29 ноября 2018

Требуемая функциональность: этот сценарий выполняет итерацию по всем текущим экземплярам проводника Windows и

  1. создает / сохраняет новый сценарий PowerShell для повторного их открытия.
  2. отображает содержимоесохраненный сценарий в текущем окне 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 *

... потому что я пытался найти, где находится текущее значение "Адресная строка"есть, но ничего не показалось актуальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...