
我有一个大项目。我编写了脚本。脚本将所有小于或大于特定大小的文件列表转储到 .txt 文件中。然后我将文件移动到另一个硬盘(取决于我如何设置启动驱动器),然后删除原始文件并为其创建符号链接。
我的目标是将所有小于 512KB 的文件移动到 SSD,并将其余文件保留在 RAID 上。
我在 Program Files 和 Program Files (x86) 以及 Users 上尝试过,一切顺利。但是,当我使用 Windows 驱动器时,会出现 BCD 启动错误。
但是,我决定将我的操作系统移至 RAID,并将所有文件移至 SSD(我之前是以另一种方式进行的),因为我认为在符号链接发生之前可能尚未加载 RAID。
我通过保留以下文件夹来启动它:assembly、windows\system32 和 syswow64 中的所有文件以及 boot。
我猜这可能只是一种反复试验的事情。
如果有人感兴趣的话,这里有批处理文件
文件大小调整程序
@Echo Off
SetLocal EnableDelayedExpansion
set maxbytesize=1048576
for /f "tokens=*" %%A in ('dir /a-d /b /s') DO (
If %%~zA GTR %maxbytesize% (
echo %%A
)
) >> list2.txt
我使用带有 openofficeportable 的 win7rescuepe live cd 来创建 Combine.csv(只需将 list2.txt 复制并粘贴到 a 列,对目标路径进行快速搜索/替换,然后将内容复制到 b 列,保存为 Combined.csv)。
传输程序
echo off
SetLocal EnableDelayedExpansion
Set n=
Set m=
for /f "tokens=1,2* delims=," %%A in (combined.csv) DO (
Set /a n+=1
Set /a m+=1
echo %%A
echo %%B
echo F|xcopy %%A %%B /Y /f > nul
IF EXIST %%B DEL %%A
IF EXIST %%B MKLINK %%A %%B
)
答案1
好吧,我确实移动了我的 winsxs,一切正常。我认为它们能正常工作是因为路径仍然相同,所以当有东西硬链接到它时移动它应该没问题。我之前遇到了问题,但我认为这是因为文件复制失败。我重新安装并能够解决所有过去的问题
作为更新。我也没有移动 inf 文件夹
我正在考虑重写脚本以自动跳过这些文件夹。我可以使用挂载点而不是符号链接某些文件来执行简单测试,以查看哪些可启动,哪些不可启动。
答案2
我已经三次重新擦除我的驱动器了。我决定将启动设备设为 SSD,因为我必须保留一些文件夹(sys32/syswow、inf 等),我不想将它们放在 RAID 上,因为 4K 读取。效果很好!这是一种获得更快的 hd 负载平衡启动的非常好的方法。我还使用免费的 ramdisk 工具安装 ramdisk 并将我的临时文件分配给它,这样我的 ssd 就不会浪费时间写入临时文件,并且可以为 4k 读取/写入提供更多的吞吐量
答案3
就像要显示的图标一样。与符号链接不同,您不能在 DOS 中“cd ./shortcut-name”(在 Unix/Linux 中,您可以“cd ./symlink-name”,它将像真正的子目录一样工作