我想摆脱已安装应用程序的桎梏,将我的大多数应用程序作为便携版本分享到云端硬盘中。所以我的想法是,每当我坐在新设备上时,我只需同步我的云端硬盘并启动某种进程,安装我的设置。
我所说的安装是指设置我的 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
它会被忽略。我总是看到这个对话框。
答案1
虽然这篇文章已有 3 年多历史,但 SetUserFTA 可能对你有帮助。请参阅参考资料这里和这里。
对于我来说,以编程方式设置 Windows 10 中的默认浏览器是可行的,并且它也适用于任何其他文件类型。
编辑这是我所做的:
从以下位置下载最新的 SetUserFTA这里并解压缩以提取 SetUserFTA.exe。
创建一个包含以下内容的 BAT 文件:
i. 将目录 (cd) 更改为 SetUserFTA.exe 所在的文件夹 (路径)。
ii. 一些行/指令定义每种文件类型所需的默认关联。例如,要将 Firefox 设置为我的默认 Web 浏览器,我添加了以下几行:
REM web browser: Firefox SetUserFTA http FirefoxHTML SetUserFTA https FirefoxHTML SetUserFTA .htm FirefoxHTML SetUserFTA .html FirefoxHTML REM ... add any other file extensions here
运行 BAT 文件,可以按需运行,也可以使用任务计划程序安排运行。确保从用户上下文“以最高权限”运行 BAT 文件(它需要该权限才能更新 Windows 注册表)。