脚本能自动整理桌面文件吗?

wen 实用脚本 2

本文目录导读:

脚本能自动整理桌面文件吗?

  1. Windows (使用 PowerShell)
  2. macOS / Linux (使用 Bash)
  3. 更高级的灵感
  4. 重要提醒(非常重要!)

是的,脚本可以自动整理桌面文件!通过编写简单的脚本(如 Python、Bash、PowerShell),你可以根据文件类型、名称、日期等规则,将桌面上的文件自动移动到指定的文件夹中。

下面给出几种常见系统的脚本示例,你可以根据自己的需求修改使用。

Windows (使用 PowerShell)

这个脚本会按照文件扩展名(后缀),将桌面文件移动到对应的文件夹里。

# 定义桌面路径和整理目标文件夹
$desktopPath = [Environment]::GetFolderPath('Desktop')
$destinationRoot = "$desktopPath\整理后" # 在桌面上创建一个叫“整理后”的文件夹
# 确保目标根文件夹存在
if (-not (Test-Path $destinationRoot)) {
    New-Item -ItemType Directory -Path $destinationRoot | Out-Null
}
# 获取桌面上所有文件(不包括文件夹)
Get-ChildItem -Path $desktopPath -File | ForEach-Object {
    $file = $_
    $extension = $file.Extension.ToLower()
    # 跳过脚本本身(如果不想移动自己)
    if ($file.Name -eq "Organize-Desktop.ps1") { return }
    # 根据扩展名定义目标子文件夹
    $subFolder = switch ($extension) {
        '.jpg' { '图片' }
        '.jpeg' { '图片' }
        '.png' { '图片' }
        '.gif' { '图片' }
        '.bmp' { '图片' }
        '.doc' { '文档' }
        '.docx' { '文档' }
        '.xls' { '文档' }
        '.xlsx' { '文档' }
        '.ppt' { '文档' }
        '.pptx' { '文档' }
        '.pdf' { '文档' }
        '.txt' { '文本' }
        '.zip' { '压缩包' }
        '.rar' { '压缩包' }
        '.7z' { '压缩包' }
        '.exe' { '程序' }
        '.msi' { '程序' }
        default { '其他文件' } # 不认识的扩展名放这里
    }
    # 构建目标文件夹路径
    $destinationDir = Join-Path -Path $destinationRoot -ChildPath $subFolder
    if (-not (Test-Path $destinationDir)) {
        New-Item -ItemType Directory -Path $destinationDir | Out-Null
    }
    # 移动文件(如果有重名会添加数字后缀)
    $destinationFile = Join-Path -Path $destinationDir -ChildPath $file.Name
    $counter = 1
    while (Test-Path $destinationFile) {
        $newName = "$($file.BaseName)_$counter$($file.Extension)"
        $destinationFile = Join-Path -Path $destinationDir -ChildPath $newName
        $counter++
    }
    Move-Item -Path $file.FullName -Destination $destinationFile -WhatIf # 去掉 -WhatIf 来真正执行
}

使用方法:

  1. 打开记事本,粘贴上述代码。
  2. 保存为 Organize-Desktop.ps1 文件(注意扩展名是 .ps1)。
  3. 右键点击该文件 -> “使用 PowerShell 运行”。
    • 小提示: 代码中有一行 -WhatIf 参数,它会模拟运行并显示将要移动的文件,但不会真的移动,你可以先试运行一次看看效果,确认没问题后删掉 -WhatIf 再正式运行。

macOS / Linux (使用 Bash)

这个脚本逻辑类似,会根据文件类型创建对应的文件夹并移动文件。

#!/bin/bash
# 定义桌面路径
DESKTOP="$HOME/Desktop"
# 定义整理后的根文件夹(在桌面上创建一个叫“整理后”的文件夹)
DEST="$DESKTOP/整理后"
# 创建根文件夹(如果不存在)
mkdir -p "$DEST"
# 遍历桌面上的所有文件(不包括文件夹)
for file in "$DESKTOP"/*; do
    # 跳过脚本本身和目录
    [ -f "$file" ] || continue
    filename=$(basename "$file")
    [ "$filename" == "organize_desktop.sh" ] && continue
    # 获取文件扩展名(转为小写)
    extension="${filename##*.}"
    extension_lower=$(echo "$extension" | tr '[:upper:]' '[:lower:]')
    # 根据扩展名定义目标子文件夹
    case "$extension_lower" in
        jpg|jpeg|png|gif|bmp)  subfolder="图片" ;;
        doc|docx|xls|xlsx|ppt|pptx|pdf|txt) subfolder="文档" ;;
        zip|rar|7z|gz|bz2)     subfolder="压缩包" ;;
        dmg|app)              subfolder="程序" ;;
        mp3|wav|flac|aac)     subfolder="音乐" ;;
        mp4|avi|mov|mkv)      subfolder="视频" ;;
        *)                    subfolder="其他文件" ;;
    esac
    # 创建子文件夹(如果不存在)
    target_dir="$DEST/$subfolder"
    mkdir -p "$target_dir"
    # 处理重名文件(添加数字后缀)
    target_file="$target_dir/$filename"
    counter=1
    while [ -f "$target_file" ]; do
        base="${filename%.*}"
        target_file="$target_dir/${base}_$counter.$extension"
        ((counter++))
    done
    # 移动文件
    mv "$file" "$target_file"
    echo "移动了: $filename -> $subfolder/"
done
echo "桌面整理完成!"

使用方法:

  1. 打开“文本编辑”或终端中的 nano / vim,粘贴代码。
  2. 保存为 organize_desktop.sh 到桌面。
  3. 打开终端(Terminal),输入以下命令赋予执行权限:
    chmod +x ~/Desktop/organize_desktop.sh
  4. 运行脚本:
    ~/Desktop/organize_desktop.sh

更高级的灵感

除了按扩展名整理,你还可以考虑:

  • 按文件修改日期: 创建 2025-042025-05 这样的月份文件夹,将文件分月存放。
  • 按文件尺寸: 将大于 100MB 的文件移动到“大文件”文件夹。
  • 按关键词: 如果文件名包含“项目”、“报告”等词,移动到对应文件夹。
  • 使用 Python (跨平台): Python 的 osshutil 库可以写更灵活的脚本,尤其适合逻辑复杂的情况。

重要提醒(非常重要!)

  • 备份你的文件! 在第一次运行任何自动整理脚本前,请务必备份桌面上的文件,或者先把文件复制一份到其他地方进行测试。
  • 先模拟运行! 使用 PowerShell 的 -WhatIf 参数或 Bash 中先用 echo 代替 mv,确保脚本的行为符合你的预期,而不会误删或错误移动文件。
  • 注意程序快捷方式: 脚本默认只移动文件(-File),不会移动文件夹,如果你桌面有程序的快捷方式(.lnk.app 文件),可以根据需要调整规则。

希望这些示例能帮你摆脱杂乱桌面!如果需要定制更具体的规则(比如按日期或关键词),可以告诉我,我可以帮你调整脚本。

抱歉,评论功能暂时关闭!