
В Windows есть несколько папок, таких как «Документы», «Изображения», «Загрузки» и т. д., к которым можно получить доступ из панели быстрого доступа слева от Проводника или из вкладки «Главная». Нажатие кнопки для перехода на один уровень вверх из этих папок вернет вас на главную страницу или на рабочий стол, в зависимости от того, как вы туда попали изначально.
Эти папки на самом деле расположены где-то вроде C:\Users\user1\Documents
, или возможно C:\Users\user1\OneDrive\Documents
, поэтому, когда я поднимаюсь на один уровень выше, мне на самом деле хочется перейти в C:\Users\user1\
или C:\Users\user1\OneDrive\
.
Есть простой способ сделать это?
решение1
Следующее справедливо для Windows 10, я не обновлялся до 11, поэтому не знаю, как это сделать.Исследовательповедение могло измениться.
Пару лет назад я создал простой пункт контекстного меню дляЗадний план докторскойконтекстное меню:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\OpenLocation]
@="&Open file-system location"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\OpenLocation\command]
@="\"explorer.exe\" \"%v\""
Это открывает новыйИсследовательокно в файловой системе расположения папок в This PC
, shell:UsersFilesFolder
(папка профиля пользователя, корневая на рабочем столе) и т. д. Но открытие нового окна кажется неуклюжим. Кажется, что "чище" перемещаться в существующем окне. Поэтому, увидев этот вопрос, я снова зашел и пришел к этомуPowerShellфрагмент:
@((New-Object -com shell.application).Windows()).ForEach({
Try{$_.Navigate2($_.LocationURL)}
Catch{}
})
Он будет перемещатьсявсеоткрытьИсследовательокна, которые в данный момент отображают соединение пространства имен с их расположением в файловой системе.
Чтобы создать ярлык контекстного меню для запуска этого кода без мерцания окна:
$encodedCommand = [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes( '@((New-Object -com shell.application).Windows()).ForEach({Try{$_.Navigate2($_.LocationURL)}Catch{}})'))
$CommandLine = 'cmd.exe /c start /min Powershell -NoProfile -ExecutionPolicy Bypass -EncodedCommand ' + encodedCommand
$Key = 'HKCU:\SOFTWARE\Classes\Directory\Background\Shell\NavToFSLocation'
[PSCustomObject]@{
'(Default)' = 'Open file-system location'
'Position' = 'Top'
} | Set-ItemProperty -Path (mkdir $Key -Force).PSPath
New-Item -Path $Key -Name 'Command' -Value $CommandLine
Если вы предпочитаете .reg
файл:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\NavToFSLocation]
@="Open file-system location"
"Position"="Top"
[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\Shell\NavToFSLocation\Command]
@="cmd.exe /c start /min Powershell -NoProfile -ExecutionPolicy Bypass -EncodedCommand QAAoACgATgBlAHcALQBPAGIAagBlAGMAdAAgAC0AYwBvAG0AIABzAGgAZQBsAGwALgBhAHAAcABsAGkAYwBhAHQAaQBvAG4AKQAuAFcAaQBuAGQAbwB3AHMAKAApACkALgBGAG8AcgBFAGEAYwBoACgAewBUAHIAeQB7ACQAXwAuAE4AYQB2AGkAZwBhAHQAZQAyACgAJABfAC4ATABvAGMAYQB0AGkAbwBuAFUAUgBMACkAfQBDAGEAdABjAGgAewB9AH0AKQA="