Board logo

标题: [文件操作] 批处理怎样根据版本号提取压缩文件的名字? [打印本页]

作者: 帝尊    时间: 2023-2-20 09:26     标题: 批处理怎样根据版本号提取压缩文件的名字?

有几个文件夹,平时使用的时候都是按照当前文件夹名称提取为压缩文件名称。
可否改成文件夹名称+文件夹内的一个版本号?

例如:
之前的是
D:/NAME/NVME
压缩文件名为 NVME.7z

现在想要的是
D:/NAME/NVME/dev/hkc/pug/10.2.3.4/*.*
可否把压缩文件的名字改为 NVME-10.2.3.4.7z
NVME文件夹下面肯定有一个文件夹是版本号,但是不确定在第几层。压缩包在D:/NAME这个路径
作者: 帝尊    时间: 2023-2-22 08:09

回复 2# WHY


    非常感谢。我去试试。
作者: 帝尊    时间: 2023-2-22 09:22

回复 2# WHY


    大神好,这个还是有点问题。

路径是这样的:

C:\Users\GOD\Desktop\diy\Physical\he\wuzhaoling\in\DRV\kente\mobe\ggilhg\45.32.3.3.23\*.*
想实现是的是在diy目录下直接打包成diy-45.32.3.3.23.7z
作者: 帝尊    时间: 2023-2-23 13:15

回复 5# WHY


    好的。谢谢。我试试看。
作者: 帝尊    时间: 2023-3-1 14:59

本帖最后由 帝尊 于 2023-3-7 12:35 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "7zPath=C:\Program Files\7-Zip\7z.exe"
  4. for /d %%D in (*) do (
  5.     for /d %%S in ("%%D\*") do (
  6.         echo %%~nS | findstr /r "^[0-9][0-9.]*$" >nul && (
  7.             set "zipFileName=%%~nD%%~nS.zip"
  8.             "!7zPath!" a -tzip "!zipFileName!" "%%D"
  9.         )
  10.     )
  11. )
  12. endlocal
复制代码
我自己写一个吧。




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