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

[文件操作] 批处理怎样合并文件并自动用上级目录命名?

求助大神!
我有堆文件,是TS的小碎片文件,需要批处理合并成一个个文件,这些文件分别放在不同的文件夹下,我希望自动合并后并自动用上级目录命名(如文件夹为“1”,合并好后自动命名为1.ts)
  1. echo off
  2. cls
  3. copy/b *.ts aa.ts
  4. color f2
  5. echo 操作完成,按任意键退出。
  6. Pause
复制代码
希望着这里的aa.ts 变成自动的

拖拽识别不包含子文件夹或子文件 文件夹识别默认为txt自行修改
cd/d "%~f1"
if exist "%~f1\*" copy/b ".\*.txt" ".\%~nx1.txt"
if not exist "%~f1\" if exist "%~f1" for /f "delims=" %%i in ("%cd%")do copy/b ".\*%~x1" ".\%%~nxi%~x1"
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 1# xidhgood
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r %%i in (*.ts) do (
  4. set "var=%%~pi"
  5.     for /f "tokens=*" %%a in ("!var:~0,-1!") do (
  6.         copy/b %%i %%~na%%~xi
  7. )
  8. )
  9. echo 操作完成,按任意键退出。
复制代码

TOP

回复 3# holley


这样可以减少copy命令执行的次数,提升效率:
  1. @echo off
  2. for /d %%i in (*) do (
  3.     copy /b "%%i\*.ts" "%%i.ts"
  4. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# /zhqsystem/zhq


    谢谢,因为我是刚注册的账号,一开始我自己发了求助贴可是我自己并打不开我的发贴子,所以过了好几天再来看,今天能打开了,回复晚了不好意思!

TOP

回复 3# holley


     谢谢,因为我是刚注册的账号,一开始我自己发了求助贴可是我自己并打不开我的发贴子,所以过了好几天再来看,今天能打开了,回复晚了不好意思!
你的我试了,是我使用的方法不对还是怎么的,我运行BAT没有任何作用 ,(二楼帮我用拖拽的我试了是可以的)你这个是BAT直接运行吗?还是要怎么样

TOP

回复 4# Batcher


     回复晚了不好意思!
但是我用的代码不管用哎 ,是我的使用方法不对吗?新手上路哈。。。。

TOP

echo off
set "cd_=%cd%"
:loop
set "cd_=%cd_:*\=%"
set "cd_tmp=%cd_:\=%"
if not "%cd_tmp%"=="%cd_%" goto loop
echo "%cd_%"
cls
copy/b *.ts "%cd_%".ts
color f2
echo 操作完成,按任意键退出。
Pause
这是其它人帮我写的一个批处理,是可行的,但是我还不知足,想更智能一点,就是希望运行后自动删除旧的TS文件,只留下合并后的新文件,能实现吗?

TOP

回复 8# xidhgood


测试之前注意做好备份

@echo off
set "cd_=%cd%"
:loop
set "cd_=%cd_:*\=%"
set "cd_tmp=%cd_:\=%"
if not "%cd_tmp%"=="%cd_%" goto loop
echo "%cd_%"
cls
copy/b *.ts "%cd_%".ts
for %%i in (*.ts) do (
    if "%%i" neq "%cd_%.ts" (
        del /f /q "%%i"
    )
)

color f2
echo 操作完成,按任意键退出。
Pause
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# Batcher


    哇哦,大神,你太牛B了,这就是我想要的效果(虽然我看懂这些代码),非常感谢!!!!

TOP

返回列表