谢谢分享! |
PowerShell 脚本,该脚本首先计算 Documents 文件夹的大小,如果大小超过 1GB,则使用 robocopy 命令将其迁移到新位置,可以按照以下步骤进行: 脚本概述 获取文件夹大小:计算 Documents 文件夹的总大小。 判断大小:如果 Documents 文件夹的大小超过 1GB,则执行迁移操作。 迁移文件夹:使用 robocopy 命令将文件夹内容迁移到新的位置。 PowerShell 脚本 powershell # 获取当前用户名 $userName = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name.Split("\")[1] # 定义 Documents 文件夹的路径 $documentsPath = "C:\Users\$userName\Documents" # 获取文件夹大小 $folderSize = 0 Get-ChildItem -Path $documentsPath -Recurse | ForEach-Object { # 如果是文件,累加文件大小 if ($_ -is [System.IO.FileInfo]) { $folderSize += $_.Length } } # 转换文件夹大小为 GB $folderSizeGB = [math]::Round($folderSize / 1GB, 2) # 输出文件夹大小 Write-Host "Documents 文件夹的大小为:$folderSizeGB GB" # 如果文件夹大小超过 1GB,则使用 robocopy 迁移文件夹 if ($folderSizeGB -gt 1) { # 定义新的目标位置 $newLocation = "D:\Documents" # 如果目标文件夹不存在,则创建它 if (-Not (Test-Path -Path $newLocation)) { New-Item -ItemType Directory -Path $newLocation } # 使用 robocopy 迁移文件夹内容 Write-Host "迁移 Documents 文件夹到新位置:$newLocation" robocopy $documentsPath $newLocation /E /Z /COPYALL /R:3 /W:5 # 移动文件夹成功后,删除源文件夹(可选) # Remove-Item -Path $documentsPath -Recurse -Force # 更新注册表,修改默认文件夹位置 $regKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" Set-ItemProperty -Path $regKey -Name "Personal" -Value "$newLocation" # 可选:重新启动资源管理器,使更改生效 Stop-Process -Name explorer Start-Process explorer } else { Write-Host "Documents 文件夹的大小没有超过 1GB,跳过迁移。" } 详细步骤 获取当前用户名:我们使用 [System.Security.Principal.WindowsIdentity]::GetCurrent().Name.Split("\")[1] 获取当前用户的用户名。 计算文件夹大小: 使用 Get-ChildItem -Recurse 遍历 Documents 文件夹中的所有文件。 累加每个文件的大小,最终得出文件夹总大小。 将文件大小从字节转换为 GB(使用 1GB = 1,073,741,824 字节)。 判断文件夹大小:如果文件夹大小大于 1GB,脚本继续执行迁移。 使用 robocopy 迁移文件夹: robocopy 是一个高效的文件复制工具,它支持断点续传、复制文件属性等。这里使用 /E 选项递归复制所有子文件夹,/Z 启用可恢复模式,/COPYALL 复制所有文件属性,/R:3 重试次数为 3,/W:5 每次重试等待 5 秒。 更新注册表: 通过修改注册表的 User Shell Folders 键,更新 Documents 文件夹的新路径。这一步是为了让 Windows 知道新文件夹位置。 重新启动资源管理器:为确保路径更新生效,我们重启 Windows 资源管理器。 其他说明 robocopy 参数: /E: 复制子目录(包括空目录)。 /Z: 启用可恢复模式(断点续传)。 /COPYALL: 复制所有文件属性(包括时间戳、权限等)。 /R:3: 重试 3 次(如果复制过程中发生错误)。 /W:5: 每次重试等待 5 秒。 删除源文件夹(可选):在迁移完成后,您可以选择删除源文件夹。取消注释 Remove-Item -Path $documentsPath -Recurse -Force 即可启用此功能。 示例输出 plaintext Documents 文件夹的大小为:1.25 GB 迁移 Documents 文件夹到新位置:D:\Documents 注意事项 管理员权限:如果要修改注册表或移动系统文件夹,确保以管理员权限运行 PowerShell。 目标路径:确保目标驱动器(例如 D 盘)有足够的空间来存放移动的文件。 数据安全:在执行任何文件操作前,建议先备份数据,避免丢失重要文件。 |
感谢分享,您辛苦了。 |
感谢楼主分享! |
原创工具很好 |
这个装机时很有用,谢了 |
感谢分享 试用下 重装系统很有用 |
很完善,感谢分享. |
chenshipeng 发表于 2024-8-27 23:25 哦,明白了 |
zlq_hysy 发表于 2024-8-25 12:14 您误解我意思了,我意思是默认的路径要嘛可以修改,要嘛把win10去了 |
j4tan 发表于 2024-8-26 16:10 哈哈,工具主要的功能就是修改User Shell Folders键值的。高手可以自己修改的。桌面上的用户文件夹不知在哪里修改。 |
感谢楼主,马上下载收藏,西部虎那边微博才更新到5.21。 |
感谢楼主的分享啊 |
感谢分享,挺好。 |
很不错的软件谢谢分享 |
chenshipeng 发表于 2024-8-25 12:12 可以勾掉的。最后三项默认是不使用的。 |
j4tan 发表于 2024-8-25 11:43 谢谢反馈,我查查原因 |
支持楼主原创,很实用的小工具,网上试用了几个要不有BUG要不功能不全,这个目前来说比较完美 |
感谢分享. |
好东西,想不到升级到这个版本了,我都还在用V1.5 |
感谢分享 |
谢谢分享 |
感谢分享。。。 |
期待完美谢谢分享 |
要是能转移已有的C:\Program Files\WindowsApps 目录就好了。 |
谢楼主分享! |
很不错,正在用,谢谢分享 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.