在批处理脚本中更改 Windows 公共文件夹

在批处理脚本中更改 Windows 公共文件夹

我在外部硬盘上安装了 Steam,这样我只需移动硬盘就可以在不同的电脑上玩游戏。由于游戏存档通常保存在“我的文档”或 AppData 中,但我希望它们随外部硬盘一起移动,所以我编写了一个批处理文件,在启动 Steam 之前设置环境变量。

setocal
set USERPROFILE=%EXTERNAL_LETTER%\Profile\Me
set APPDATA=%USERPROFILE%\AppData\Roaming
...
start %TARGETAPP%
endlocal

我不确定这是否是在 Windows 上执行此操作的正确方法,但它似乎有效。

但是,有一款游戏将其游戏保存在共享文档文件夹中。我尝试设置 %PUBLIC% 和 %ALLUSERSPROFILE%,但这似乎不会影响游戏的显示位置。是否可以让这个程序使用不同的共享文档文件夹,通过环境变量还是其他方式?

共享文档中的更改只会影响一个程序,我不希望它成为 Windows 的永久性或系统范围的更改。

答案1

啊,跟踪者。

如果您使用的是 Vista 或 7(或更高版本,供以后阅读本文的人使用),则可以使用 NTFS 符号链接重定向保存,但您必须在每台玩游戏的 PC 上执行此操作。它是一个命令行工具,工作方式如下:

mklink /H Link Target

例如,你将保存的文件移动到外部硬盘,打开 cmd 窗口,cd 到保存目录,然后转到mklink /H [save name].sav %EXTERNAL_LETTER%\Saves\Stalker\[Save Name].sav

答案2

查看注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

我相信这是“Common Documents”键,其在我的计算机上的值是“%PUBLIC%\Documents”。

您可以尝试设置 PUBLIC,或者如果这不起作用,请编写一个脚本来保存并更改注册表中的此项。

相关内容