Board logo

标题: [文件操作] [已解决]求修改批处理7Z打包所有子文件夹(不包含子文件夹本身目录) [打印本页]

作者: smss    时间: 2019-6-22 01:08     标题: [已解决]求修改批处理7Z打包所有子文件夹(不包含子文件夹本身目录)

  1. @echo off&SetLocal EnableDelayedExpansion
  2. ::for /f "delims=" %%i in ('dir /b /a /s *') do (attrib "%%i" +h)>nul
  3. ::压缩
  4. for /f "delims=" %%i in ('dir /b /adh %cd%\*') do (for /f "delims=" %%j in ('dir /b /adh %cd%\*') do (
  5. if "%%~nxi" neq "preview" (if "%%~nxi" neq "wallpaper" (if "%%~nxi" neq "description.xml" ("C:\Program Files\7-Zip\7z.exe" a "%%~dpi%%i.zip" "%%j\*">nul
  6. echo %%j压入%%~dpi%%i.zip
  7. )))))
  8. echo ________________________________________________________________________
  9. for /d %%i in ("%cd%\*") do (for /d %%j in ("%%i\*") do echo %%j压入%%i.zip)
  10. pause
复制代码
不太理想
作者: miqilaosu    时间: 2019-6-22 11:39

本帖最后由 miqilaosu 于 2019-6-22 11:49 编辑

回复 1# smss
  1. dir /b /adh
复制代码
不加/S不就看不到子目录了吗?缺点是不带路径用到时需要通过%~dp0等自行添加
作者: smss    时间: 2019-6-22 11:56

本帖最后由 smss 于 2019-6-22 15:21 编辑

回复 2# miqilaosu
谢谢
  1. @echo off&SetLocal EnableDelayedExpansion
  2. ::for /f "delims=" %%i in ('dir /b /a /s *') do (attrib "%%i" +h)>nul
  3. ::压缩
  4. for /f "delims=" %%i in ('dir /b /adh "%cd%\*"') do (for /f "delims=" %%j in ('dir /b /ad /adh "%%~dpi%%i*"') do (
  5. if "%%~nxi" neq "preview" (if "%%~nxi" neq "wallpaper" ("C:\Program Files\7-Zip\7z.exe" a "%%~dpi%%i.zip" "%%~dpj%%j\*">nul
  6. echo %%~dpj%%j压入%%~dpi%%i.zip
  7. ))))
  8. pause
复制代码

作者: miqilaosu    时间: 2019-6-22 13:14

回复 3# smss
  1. dir /b /ad /adh "%%~dpi%%i*"
复制代码
最好有引号,不然遇到有空格的文件夹会报错
作者: smss    时间: 2019-6-22 15:19

回复 4# miqilaosu





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2