[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助批处理如何按文件固定字符前字符命名压缩包名?

我有一段代码是按照文件前10位数字来命名压缩包名,如果要是这样取 "_" 前几位相同字符来命名怎么改,如:
a_disk1.txt
a_disk2.txt
abc_disk1.txt
abc_disk2.txt
efgh_disk1.txt
efgh_disk2.txt
efgh_disk3.txt
想实现效果 a.zip abc.zip efgh.zip (里面文件要是a_disk1.txt a_disk2.txt ....)
  1. @echo off
  2. cd /d %~dp0
  3. setlocal enabledelayedexpansion
  4. ::设置WinRAR的安装目录路径
  5. set WinRarDir=%ProgramFiles%\WinRAR
  6. set Path=%Path%;%WinRarDir%
  7. for %%a in (*.txt) do (
  8.     set "Fn=%%~na"
  9.     echo ,!Fs!,|findstr ",!Fn:~,10!," >nul || set "Fs=!Fn:~,10!,!Fs!"
  10. )
  11. for %%a in (!Fs!) do RAR a "%%~a" "%%~a*.txt"
复制代码

回复 1# jieyuan_1981
  1. @echo off
  2. cd /d %~dp0
  3. setlocal enabledelayedexpansion
  4. REM 设置WinRAR的安装目录路径
  5. set WinRarDir=%ProgramFiles%\WinRAR
  6. set Path=%Path%;%WinRarDir%
  7. for %%a in (*.txt) do (
  8.     for /f "delims=_" %%b in ("%%~na") do (
  9.         set "Fn=%%b"
  10.         echo ,!Fs!,|findstr ",!Fn!," >nul || set "Fs=!Fn!,!Fs!"
  11.     )
  12. )
  13. for %%a in (!Fs!) do (
  14.     WinRAR a "%%a.zip" "%%a_*.txt"
  15. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher

winrar报错:没有文件被添加

TOP

回复 3# jieyuan_1981


1. 请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

2. 代码里面加几个echo看看是哪个环节出了问题,例如:
  1. @echo off
  2. cd /d %~dp0
  3. setlocal enabledelayedexpansion
  4. REM 设置WinRAR的安装目录路径
  5. set WinRarDir=%ProgramFiles%\WinRAR
  6. set Path=%Path%;%WinRarDir%
  7. for %%a in (*.txt) do (
  8.     echo 正在处理文件 %%a
  9.     for /f "delims=_" %%b in ("%%~na") do (
  10.         set "Fn=%%b"
  11.         echo ---!Fn!
  12.         echo ,!Fs!,|findstr ",!Fn!," >nul || set "Fs=!Fn!,!Fs!"
  13.         echo +++!Fs!
  14.     )
  15. )
  16. echo ===!Fs!
  17. for %%a in (!Fs!) do (
  18.     WinRAR a "%%a.zip" "%%a_*.txt"
  19. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


    感谢大神编译已通过。

TOP

回复 5# jieyuan_1981


    我找到出错的原因了,可能是空格的问题。导致有的过不去。会把空格前后字符单独处理。请帮改一下。

TOP

返回列表