Board logo

标题: [文本处理] [以解决]批处理怎么修改一下文件名? [打印本页]

作者: qcbf    时间: 2011-6-3 13:57     标题: [已解决]批处理怎么修改一下文件名?

因为我用yamdi给每个flv注入一下,而yamdi只能是注入后生成一个新的flv(flvtool2这些虽然可以但是效率太差..)
所以我现在写了个批处理yamdi注入后的文件名是 原来文件名.flv_injection.flv 这样的,再删掉原来的文件.然后我现在需要在写一个批处理又来rename这些批处理,将 比如 :原来:abc.flv注入后是abc.flv_injection.flv就是将_injection.flv去掉.
谢谢大家了,不知道大家理解了么?
作者: CrLf    时间: 2011-6-3 14:01

看得真晕,何不列举几个简单例子进行前后对比呢?比如:
1.flv_abc.flv           1.flv
a.flv_abc.flv           a.flv
TEST.flv_abc.flv      TEST.flv
不知道我理解你的意思没...
作者: qcbf    时间: 2011-6-3 14:03

2# zm900612

对,就是这样,该怎么写呀,谢谢了.
作者: CrLf    时间: 2011-6-3 14:09

本帖最后由 zm900612 于 2011-6-3 14:22 编辑
  1. ren "*.flv_abc.flv" "???????????????????????.flv"
复制代码

作者: qcbf    时间: 2011-6-3 14:19

4# zm900612


谢谢你.
作者: qcbf    时间: 2011-6-3 14:29

4# zm900612
如果这个文件还在子文件夹里存在有该怎么写呀?
就是全部文件都替换文件名,包括子文件夹
作者: 601997526    时间: 2011-6-3 14:34

加个for /r 就行了
作者: qcbf    时间: 2011-6-3 14:41

本帖最后由 qcbf 于 2011-6-3 14:52 编辑

7# 601997526
那个,我对批处理是差的.....
希望能写出例题,谢谢了...
实在抱歉,要求的这么多....
我这样写了个,但达不到效果
  1. for /f "delims=" %%ii in ('dir /b /a-d /s "*.flv"') do (
  2. rename "%%ii" "???????????????????????.flv"
  3. )
复制代码
这是全部代码
  1. @echo off
  2. echo 正在进行注入
  3. for /f "delims=" %%i in ('dir /b /a-d /s "*.flv"') do (yamdi -i "%%i" -o "%%i"_injection.flv&del "%%i"&echo %%i )
  4. echo 正在进行最后步骤;
  5. for /f "delims=" %%ii in ('dir /b /a-d /s "*.flv"') do (rename "*.flv_injection.flv" "???????????????????????.flv")
  6. echo 全部完成
  7. pause
复制代码

作者: CrLf    时间: 2011-6-3 15:03

本帖最后由 zm900612 于 2011-6-3 15:12 编辑

包括子目录
  1. for /r /d %%a in (*) do ren "%%a\*.flv_abc.flv" "???????????????????????.flv"
复制代码

作者: qcbf    时间: 2011-6-3 15:09

9# zm900612
@echo off
for /r /d %%a in (*) do ren "*.flv_injection.flv" "???????????????????????.flv"
pause

系统找不到指定的文件。
......
作者: CrLf    时间: 2011-6-3 15:12

笔误已修改
作者: qcbf    时间: 2011-6-3 15:25

谢谢大家,效果实现了.
作者: qcbf    时间: 2011-6-9 11:02     标题: [以解决]批处理怎么修改一下文件名?

本帖最后由 zm900612 于 2011-6-9 15:26 编辑

@echo off
for /f "delims=" %%i in ('dir /b /a-d /s "*.flv_injection.flv"') do (
echo %%i
rename "%%i" "??????????????????????????????????????????????????.flv"
)
pause


如果影片是a.a.flv_injection.flv的话他也会改为a.flv而并不是a.a.flv
这样怎么解决呀,谢谢了.
谢谢了.
作者: qcbf    时间: 2011-6-9 13:44

自己解决.

@echo off
echo 请稍候...
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a /b /s *.flv_injection.flv') do (
echo %%~na
set hcy=%%~na.flv
ren "%%~a" "!hcy:_injection.flv=!")
pause




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