2015-03-25 2 views
1

Я попытался запустить этот скрипт с помощью ISE, а также попытался запустить его в командной строке как администратор. Он зависает в строке «Удалить-ItemProperty». Я попытался удалить этот шаг, но затем он замерзает на следующем шаге «Set-ItemProperty». Похоже, что строки New-Item работают нормально.Установить ключ реестра, чтобы открыть блокнот ++

if (Test-path "HKCR:\") 
{ 
} 
else 
{ 
    New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT 
} 

Add-Type -AssemblyName System.IO.Compression.FileSystem 
function Unzip 
{ 
    param([string]$zipfile, [string]$outpath) 

    [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath) 
} 

Unzip "npp.6.7.5.bin.zip" “C:\Notepad++” 

New-Item -Type String "HKCR:\*\shell\Open With Notepad++" 
New-Item -Type String "HKCR:\*\shell\Open With Notepad++\command" 
Remove-ItemProperty "HKCR:\*\shell\Open With Notepad++\command" -name "(Default)" 
Set-ItemProperty "HKCR:\*\shell\Open With Notepad++\command" -name "(Default)" -value "C:\\Notepad++\\notepad++.exe %1" 

Любые предложения?

+3

Изменение «HKCR» будет иметь непредсказуемые результаты, поскольку этот куст является объединенным представлением «HKCU \ Software \ Classes' и« HKLM \ Software \ Classes ». Я бы выбрал тот или другой (т. Е. Когда бы клавиши на самом деле не существовали). –

ответ

0

При использовании команд ItemProperty он интерпретирует * как шаблон. Это не замораживать, то поиск каждый подключ HKCR для «оболочки \ Открыть с помощью ...» и т.д.

Чтобы заставить его интерпретировать все это как строка пути вы должны использовать переключатель -LiteralPath:

New-Item -Type String "HKCR:\*\shell\Open With Notepad++" 
New-Item -Type String "HKCR:\*\shell\Open With Notepad++\command" 
Set-ItemProperty -LiteralPath "HKCR:\*\shell\Open With Notepad++\command" -name "(Default)" -value "C:\\Notepad++\\notepad++.exe %1" 
+0

Он работает! Благодаря! –

+0

Попади в эту маленькую ловушку, пытаясь добавить опцию «Открыть с помощью блокнота» на кучу серверов = P. Если это сработало для вас, отметьте ее как принятый ответ –

Смежные вопросы