批处理 备份指定的文件夹目录

新建一个文本文档,命名为路径

内容如下:

D:\3dMaxWorkplace
D:\Desktop\3dMax作业
D:\Desktop\界面设计

(文件夹中不能有空格)

复制如下代码,保存为bat,运行即可

@echo off
setlocal enabledelayedexpansion
echo 备份到U盘:
for /f %%i in (%~dp0路径.txt) do set "pt=%%i"&echo %%i&call :getname %%i&xcopy "!pt!\*.*" "F:\备份\!fn!\" /s /h /d /c /y
echo 备份到桌面:
for /f %%i in (%~dp0路径.txt) do set "pt=%%i"&echo %%i&call :getname %%i&xcopy "!pt!\*.*" "D:\Desktop\备份\!fn!\" /s /h /d /c /y
pause
exit
:getname
set "fn=%~nx1"

代码运行机制的解释:

从一个文本文档读取多个待备份的目录,获取其文件夹名

在目的路径下新建一个同名文件夹,然后将目录下的文件复制到该文件夹中

效果:

注释:

@echo off 隐藏输入的原命令

变量延迟的启动语句是“setlocal enabledelayedexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。简单来说,开启后才可以修改变量的值。

%~dp0 批处理文件所在目录

call 调用

getname分支(相当于一个函数),传入一个路径,获取文件夹的名称,设为变量fn(folder name)

%~nx1获取文件夹名或者文件名(包含后缀)

总结:

xcopy的路径最后需要带一个斜杠,不然计算机不知道它是文件还是文件夹,它就会询问你

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值