在电脑使用过程中,文件复制是家常便饭,但有时候会遇到文件名重复导致覆盖原有文件的情况。别担心,今天就来教你一招,利用批处理轻松复制文件,避免文件覆盖的烦恼。

批处理简介

批处理(Batch Processing)是一种自动化脚本,它允许用户通过编写一系列命令来自动执行任务。在Windows系统中,批处理文件以.bat为扩展名。

创建批处理文件

  1. 打开记事本:按下Win + R,输入notepad并回车。
  2. 编写批处理命令:在记事本中输入以下命令:
@echo off
setlocal enabledelayedexpansion

set "source=%1"  REM 设置源文件路径
set "destination=%2"  REM 设置目标文件夹路径

if not exist "%destination%" mkdir "%destination%"

for %%f in ("%source%") do (
    set "filename=%%~nf"
    set "fileext=%%~xf"
    set "destinationfile=%destination%\!filename! !fileext!"
    if not exist "!destinationfile!" copy "%%f" "!destinationfile!"
)
  1. 保存文件:将文件保存为copy_files.bat,注意保存类型选择“所有文件”,并在文件名中包含.bat扩展名。

使用批处理复制文件

  1. 打开命令提示符:按下Win + R,输入cmd并回车。
  2. 运行批处理文件:在命令提示符中输入以下命令:
copy_files.bat 源文件路径 目标文件夹路径

例如,复制C:\example\source.txt到D:\example\文件夹,命令如下:

copy_files.bat C:\example\source.txt D:\example\

批处理命令说明

  • @echo off:关闭命令回显,使批处理运行时不会显示命令本身。
  • setlocal enabledelayedexpansion:启用延迟变量扩展,允许在for循环中对变量进行修改。
  • set "source=%1" 和 set "destination=%2":分别设置源文件路径和目标文件夹路径。
  • if not exist "%destination%" mkdir "%destination%":如果目标文件夹不存在,则创建该文件夹。
  • for %%f in ("%source%") do (...):遍历源文件夹中的所有文件。
  • set "filename=%%~nf" 和 set "fileext=%%~xf":分别获取文件名和扩展名。
  • set "destinationfile=%destination%\!filename! !fileext!":设置目标文件的完整路径。
  • if not exist "!destinationfile!" copy "%%f" "!destinationfile!":如果目标文件不存在,则复制文件。

通过以上步骤,你就可以轻松地使用批处理复制文件,避免文件覆盖的烦恼了。希望这个技巧能帮助你提高工作效率!