使用PowerShell批量生成软链接(便于冗余文件分盘)
本帖最后由 BLUE7777777 于 2023-7-23 18:28 编辑使用PowerShell批量生成软链接(便于冗余文件分盘)
应用场景举例:QQ小图片过多,软链接分在别的硬盘/NAS上,减少本地磁盘压力,加快消息记录搜索速度。
当然也适用其它包含冗余文件场景,可自行操作。
样例代码只需要修改两个地方:
$Local_link:本地路径
$target_Item:远程路径(也可以是本地其它硬盘/分区)
PowerShell需要用管理员身份运行
样例代码打包下载地址(打包代码已测试过):
https://cloud.189.cn/t/u6Z7f2z6J3Ev
Function New-SymLink ($link, $target)
{
if (test-path -pathtype container $target)
{
$command = "cmd /c mklink /d"
}
else
{
$command = "cmd /c mklink"
}
invoke-expression "$command $link $target"
}
Function Remove-SymLink ($link)
{
if (test-path -pathtype container $link)
{
$command = "cmd /c rmdir"
}
else
{
$command = "cmd /c del"
}
invoke-expression "$command $link"
}
Function For-New-SymLink ($link, $target)
{
$Local_link_For=$link
$target_Item_For=$target
$target_files=dir
$target_fileslength=$target_files.count
for($i=0;$i -lt $target_fileslength;$i++)
{
if($target_files[$i].mode -eq "d-----")
{echo "folder"
$source_file=$target_files[$i].name
New-Symlink $Local_link_For\$source_file $target_Item_For\$source_file
}
else
{echo "file"
$source_file=$target_files[$i].name
New-Symlink $Local_link_For\$source_file $target_Item_For\$source_file
}
}
}
以QQ举例来说,先把QQ聊天记录根目录的文件放进去,再执行PowerShell代码,链接远程路径创建文件夹的软链接,这样就把图片存在了远程目录上,不会给本地磁盘造成很大负担。 谢谢楼主 New-Symlink是PowerShell特有的,cmd用不了的 谢谢楼主
页:
[1]