无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2336|回复: 13
打印 上一主题 下一主题

[求助] 求一个批处理

[复制链接]
跳转到指定楼层
#
发表于 2024-5-20 08:39:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
要求:拷贝本目录下的多个文件夹和文件(以及本目录下指定子文件夹和子文件夹下的指定文件)并压缩。恳请高手出手,先谢谢了。
13#
发表于 2024-5-28 13:14:40 | 只看该作者

Tankas you very  much
回复

使用道具 举报

12#
 楼主| 发表于 2024-5-20 22:18:24 | 只看该作者
回复

使用道具 举报

11#
发表于 2024-5-20 17:25:10 | 只看该作者
谢谢分享
回复

使用道具 举报

10#
发表于 2024-5-20 16:52:16 | 只看该作者
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: 设置当前目录的路径
  4. set "NowPath=%CD%"
  5. :: 设置目标路径用于存放要压缩的文件和文件夹
  6. set "TargetPath=%NowPath%\new\temp_backup"
  7. if not exist "%TargetPath%" mkdir "%TargetPath%"

  8. :: 这里列出你想复制的文件夹和文件,确保路径是相对于NowPath的
  9. set "Copy_items=u\ test111.bat test111\xxx.bat test111\pcsofts.txt test111\web\ 3\up_down\down"

  10. for %%i in (%Copy_items%) do (
  11.     if exist "%%i" (
  12.         set "FullPath=%%~fi"
  13.         set "RelativePath=%%i"
  14.         if exist "%%i" (
  15.             mkdir "%TargetPath%\!RelativePath!" 2>nul
  16.             xcopy "%%i" "%TargetPath%\!RelativePath!" /I /E /Y
  17.         ) else (
  18.             set "RelativeDir=!RelativePath:%%~nxi=!"
  19.             mkdir "%TargetPath%\!RelativeDir!" 2>nul
  20.             copy "%%i" "%TargetPath%\!RelativeDir!\%%~nxi"
  21.         )
  22.     ) else (
  23.         echo 提示: "%%i" 未找到.
  24.     )
  25. )

  26. :: 设置压缩文件的名称和路径
  27. set "ZipFile=%SourcePath%\backup.zip"

  28. :: 设置7-Zip的完整路径
  29. set "ZipPath=C:\Program Files\7-Zip\7z.exe"

  30. :: 使用7-Zip压缩目标路径中的内容
  31. "%ZipPath%" a -r -tzip "%ZipFile%" "%TargetPath%\*" -mx=9 -y

  32. :: 检查压缩命令是否成功执行
  33. if %ERRORLEVEL% EQU 0 (
  34.     echo 操作成功!
  35. ) else (
  36.     echo 操作失败, 请检查!
  37. )

  38. :: 删除目标路径(取消注释下面一行以启用删除)
  39. :: rd /s /q "%TargetPath%"

  40. endlocal
  41. pause
复制代码

点评

感谢提供。  详情 回复 发表于 2024-5-20 22:18
回复

使用道具 举报

9#
发表于 2024-5-20 15:53:46 | 只看该作者
不用复制那么麻烦,只要2句,以常用的rar为例:
set rar="C:\Program Files\WinRAR\RAR.exe"
%rar% a -ep1 "创建的压缩包名称及路径.rar" "目录1" "目录2" "目录2" ...
或者你可以将目录写成一张列表,则第二行变成:%rar% a -ep1 "创建的压缩包名称及路径.rar" @列表.txt
回复

使用道具 举报

8#
发表于 2024-5-20 13:22:17 | 只看该作者
学习一下 ing
回复

使用道具 举报

7#
发表于 2024-5-20 10:50:12 | 只看该作者
学习。。。
回复

使用道具 举报

6#
 楼主| 发表于 2024-5-20 10:23:39 | 只看该作者
greatphish 发表于 2024-5-20 09:52
7z a -r -mx9 -y -i@1.txt abc
这个是指定文件,所有的指定文件和文件夹名写在1.txt里,一行一个,像这样
...

做不出来啊,能否按照此例给一个成品出来?
回复

使用道具 举报

5#
发表于 2024-5-20 09:53:46 来自手机 | 只看该作者
这是先复制到别处,再打包到别处?
回复

使用道具 举报

4#
发表于 2024-5-20 09:52:15 | 只看该作者
本帖最后由 greatphish 于 2024-5-20 10:00 编辑

7z a -r -mx9 -y -i@1.txt abc
这个是指定文件,所有的指定文件和文件夹名写在1.txt里,一行一个,像这样
abc.doc
aaa.txt
dir111
dirabc
回复楼下(因为有发帖时间间隔,投机取巧一下)
直接打包了呀,你一定要复制的话可以
方法a: 前面加一个xcopy命令
方法b:上面的压缩包abc前上绝对路径比如d:\aaa\abc,压缩完后 7z x -y -od:\aaa d:\aaa\abc.7z 解压,(我觉得这更方便),

点评

做不出来啊,能否按照此例给一个成品出来?  详情 回复 发表于 2024-5-20 10:23
回复

使用道具 举报

3#
发表于 2024-5-20 09:46:40 | 只看该作者
本帖最后由 greatphish 于 2024-5-20 09:54 编辑

(假定你安装了7z),然后
7z a -r -mx9 -y abc .  
以上是压缩当前目录及其子目录所有文件和文件夹,其中abc是最后生成的压缩包名字 上面最后abc之后有个空格和点 " ." 不要漏掉
默认是.7z格式,如果需要其他格式可以在 -y后空格,加-t开关,比如-tzip,(目前好像不支持rar,要rar用winrar的命令行,大同小异)
回复

使用道具 举报

2#
 楼主| 发表于 2024-5-20 09:44:45 | 只看该作者
多年前第三方火狐浏览器备份配置的一个批处理就是这个,可惜找不到了,百度不到,在此求批处理。
回复

使用道具 举报

1#
发表于 2024-5-20 09:33:45 | 只看该作者
等高手来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 00:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表