在家用电脑处理重复性任务时,比如批量重命名照片、整理下载文件夹,写个简单的批处理脚本能省不少功夫。而让脚本更灵活的关键,就是学会传参数。
什么是批处理传参数
就像你给朋友发消息可以带附件一样,运行批处理文件时也可以“带上”一些信息,比如路径、文件名或操作类型。这些信息就是参数,能让同一个脚本适应不同场景。
比如你有个叫 move_files.bat 的脚本,想让它把某个文件夹里的图片移到另一个地方。如果写死路径,每次换目录就得改脚本。但如果支持传参,直接拖文件夹进去或者命令行指定就行。
怎么在脚本里接收参数
Windows 批处理用 %1、%2 这样的方式接收传入的参数。第一个传进来的就是 %1,第二个是 %2,以此类推。
@echo off
echo 要处理的文件夹是: %1
echo 目标位置是: %2
xcopy "%1" "%2" /E /I
保存上面内容为 copy_dir.bat,然后这样运行:
copy_dir.bat C:\Pictures\Vacation D:\Backup\Photos
脚本就会自动把假期照片复制到备份目录。不用每次都打开编辑,改来改去。
实用小技巧:判断参数是否存在
有时候怕自己忘了输参数,可以加个检查,避免出错。
@echo off
if "%1"=="" (
echo 请拖入要处理的文件夹
pause
exit
)
echo 开始处理 %1 ...
robocopy "%1" "D:\Archive" *.jpg *.png
这样如果双击运行没拖文件进来,会提示一下再退出,不会直接跑错地方。
实际应用场景
家里老人总把手机照片扔在桌面,你可以做个脚本让他们双击后自动把图片移到“家庭相册”文件夹。把下面这段保存成 整理桌面图片.bat:
@echo off
echo 正在整理桌面图片...
move "%USERPROFILE%\Desktop\*.jpg" "%USERPROFILE%\Pictures\Family"
move "%USERPROFILE%\Desktop\*.png" "%USERPROFILE%\Pictures\Family"
echo 完成!
pause
他们只需要每天点一下,杂乱的桌面就干净了。
如果想更进一步,还能传第三个参数作为操作模式,比如复制还是移动,按需执行不同命令。灵活性一上来,一个脚本就能顶好几个用。