Я хочу быть независимым от установленных приложений и делиться большинством своих приложений в виде портативных версий на облачном диске. Поэтому моя идея заключается в том, что всякий раз, когда я сижу на новом устройстве, я просто синхронизирую свой облачный диск и запускаю какой-то процесс, который устанавливает мои настройки.

Под установкой я подразумеваю настройку параметров Windows и так далее. И я хочу установить приложения по умолчанию для каждого типа файла. Например, свяжите файлы .txt с d:\cloud\notepad++\notepad++.exe

Вот упрощенный скрипт, как я пытаюсь это сделать. Я ErrorActions и так далее, чтобы сделать его более читабельным.

$exe = "d:\cloud\notepad++\notepad++.exe"
$app = "notepad++.exe"
$ext = ".txt"

# Remove old associations
Remove-Key -Key "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$ext"
Remove-Key -Key "HKCR:\$ext"
Remove-Key -Key "HKCR:\$app"

# Setup new associations
cmd /c assoc $ext=$app
cmd /c ftype $app="$exe" "%1" "%*"
Set-ItemProperty -Path "HKCR:\$app" `
                    -Name "(Default)" `
                    -Value "Text file" `
                    -Type String  

Этот вид работ. Всякий раз, когда я пытаюсь открыть файл .txt теперь он спрашивает, какое приложение использовать, и предварительно выбирает notepad++.
Хорошо, это немного раздражает, но я мог бы жить с этим. Хотя. Когда я проверяю always use this app to open .txt files он просто игнорируется. Я всегда получаю этот диалог.

0