Board logo

标题: 无界面版本 批量文件改名 beat1.3 [20061214]更新 [打印本页]

作者: a9319751     时间: 2006-12-5 04:36    标题: 无界面版本 批量文件改名 beat1.3 [20061214]更新

C:\Documents and Settings\Administrator>pren
GNU Pren beat1.3
Usage: pren [OPTION] [CHAR] [PATH]

Startup:
        /h,  --help           print this help.
        /s,  --short          TV play series rename.
        /m,  --eliminate      eliminate char.
        /a,  --append         append char.
        /r,  --replace        replace char.
        /e,  --extend         replace ext.

Example:
        pren /s "e:\New Download\[YYSoR]I Love U 01.en.d-vb.rmvb"
        Ending: e:\New Download\01.rmvb

        pren /m [YYSoR] "e:\New Download\"
        Ending: e:\New Download\I Love U 01.en.d-vb.rmvb

        pren /a [1988] "e:\New Download\"
        Ending: e:\New Download\[1988][YYSoR]I Love U 01.en.d-vb.rmvb

        pren /r [YYSoR] [1988] e:\NewDownload\
        Ending: e:\New Download\[1988]I Love U 01.en.d-vb.rmvb

        pren /s rm e:\NewDownload\
        Ending: e:\New Download\[YYSoR]I Love U 01.en.d-vb.rm


Mail bug reports and suggestions to <zzlike@163.com>.

[ Last edited by a9319751 on 2006-12-15 at 04:55 AM ]
附件 1: 批量文件改名.rar (2006-12-14 05:09, 2.46 K, 下载附件所需积分 1点 ,下载次数: 825)
附件 2: pren.rar (2006-12-15 01:55, 1.07 K, 下载附件所需积分 1点 ,下载次数: 533)

作者: junyee     时间: 2006-12-5 11:05
不错,
如果能选择路径的话,相信会更好了,
还有更改扩展名之类的,能有个忽略(文件夹,,等等)选项就好了
作者: a9319751     时间: 2006-12-6 04:02


  Quote:
Originally posted by junyee at 2006-12-5 11:05:
不错,
如果能选择路径的话,相信会更好了,
还有更改扩展名之类的,能有个忽略(文件夹,,等等)选项就好了

谢谢你的建议
新版已经支持路径设置
增加了更改扩展名
忽略了文件夹
作者: nanoking     时间: 2006-12-6 12:03
版本更新得快,支持!
作者: yqadsq1314     时间: 2006-12-6 19:34    标题: 请教

set "oldname=%oldname:"=%"这是什么意思。
作者: a9319751     时间: 2006-12-7 03:25


  Quote:
Originally posted by nanoking at 2006-12-6 12:03:
版本更新得快,支持!

谢谢支持,希望大家使用过程中发现问题,多提建议
作者: a9319751     时间: 2006-12-7 03:26


  Quote:
Originally posted by yqadsq1314 at 2006-12-6 19:34:
set "oldname=%oldname:"=%"这是什么意思。

剔除变量 oldname中的“"”(引号)
作者: fastrun     时间: 2006-12-14 02:27
楼主强的说
作者: 无奈何     时间: 2006-12-14 03:42
提点小意见:
我觉得批处理的优势在于非交互的批量操作,能不能想办法添加参数选项可以直接调用某种功能的更名操作。再者为什么喜欢输出那么多的信息,足足占了 200+ 行。
作者: a9319751     时间: 2006-12-14 03:48
谢谢斑竹指导,马上改进
作者: linjie     时间: 2006-12-14 04:46
很好用
如果能选择 "更改当前打开的文件夹内"  就更完美了
作者: a9319751     时间: 2006-12-14 04:51


  Quote:
Originally posted by linjie at 2006-12-14 04:46:
很好用
如果能选择 "更改当前打开的文件夹内"  就更完美了

如果打开多个文件夹容易出错吧,你说的意思是多个文件夹,在最上面的这个?
作者: HUNRYBECKY     时间: 2006-12-14 04:55
编写的相当好。加分。
作者: HUNRYBECKY     时间: 2006-12-14 04:56
呵呵,我今天加分的太多了,提示我不能加,明天再给你加。
作者: a9319751     时间: 2006-12-14 05:01
谢谢鼓励
作者: linjie     时间: 2006-12-14 05:01
很好用的工具 只是不知道为什么...
拖放文件夹 然后执行 会假死

[ Last edited by linjie on 2006-12-13 at 04:13 PM ]
作者: a9319751     时间: 2006-12-14 05:10


  Quote:
Originally posted by linjie at 2006-12-14 05:01:
拖放文件夹 然后执行 会假死

不好意思
变量没加""
对空格支持不好
对不起
顶楼已更新
作者: linjie     时间: 2006-12-14 05:16
现在正常了 楼主很强...
作者: lotus516     时间: 2006-12-14 08:01
忍不住想说,第一个简单重命名代码也太复杂了吧!!给一个我的批量COPY并重命名!!
1  @echo off
2  set /p msg=请输入要重命名的路径:
3  set msg=%msg:"=%
4  set /p word=请输入要复制的文件扩展名:
5  set word=%word:"=%
6  set /p msg2=请输入新的文件夹位置及文件夹的名字(可以不存在):
7  set msg2=%msg2:"=%
8  set /p word2=请输入新的文件扩展名:
9  set word2=%word2:"=%
10 if not exist %msg2%\ md %msg2%\
11 setlocal enabledelayedexpansion
12 dir /b/on "%msg%\"*."%word%" >%msg2%\txt.lst
13 for /f %%i in (%msg2%\txt.lst) do (
14        set /a num+=1
15        set name=00!num!
16        copy %msg%\"%%i" %msg2%\!name:~-3!%.!word2!
17     )
18 )
19 del %msg2%\txt.lst
缺点,要生成临时文件!
如果只用来改名可以把6,7,10三行删了,并把msg2改为msg,copy改为ren
呵呵,班门弄斧!!

[ Last edited by lotus516 on 2006-12-14 at 08:08 AM ]
作者: a9319751     时间: 2006-12-15 01:54


  Quote:
Originally posted by lotus516 at 2006-12-14 08:01:
忍不住想说,第一个简单重命名代码也太复杂了吧!!给一个我的批量COPY并重命名!!
[code]1  @echo off
2  set /p msg=请输入要重命名的路径:
3  set msg=%msg:"= ...

也不错,哦
作者: classic     时间: 2006-12-29 11:28
谢谢!!真是太好了!!
作者: everest79     时间: 2006-12-29 13:20


  Quote:
Originally posted by a9319751 at 2006-12-4 03:36 PM:
C:\Documents and Settings\Administrator>pren
GNU Pren beat1.3
Usage: pren [OPTION] [CHAR] [PATH]

Startup:
        /h,  --help           print this help.
        /s,  --short          TV p ...

碰到熟人了,嘿嘿,我那个问题按你说的改好了,发这里,看你先看到那边
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET YEAR=%DATE:~0,4%&SET MONTH=%DATE:~5,2%&SET DAY=%DATE:~8,2%
CALL :ALG MONTH %MONTH%&&CALL :ALG DAY %DAY%

:TOP
CLS
SET /P BIRTHDAY=When's your birthday?(Month And Day):
ECHO %BIRTHDAY%|FINDSTR /R "^[0-9]*[.:;/][0-9]*">nul||GOTO TOP
FOR /F "tokens=1,2 delims=.:;-/" %%i IN ("%BIRTHDAY%") DO CALL :ALG BM %%i&CALL :ALG BD %%j
IF NOT %BM% GTR 0 (GOTO TOP) ELSE IF %BM% GTR 12 GOTO TOP
IF NOT %BD% GTR 0 (GOTO TOP) ELSE IF %BD% GTR 31 GOTO TOP
FOR /L %%i IN (1,1,12) DO (
       if %%i geq 8 (set d1=30&&set d2=31) else set d1=31&&set d2=30
       set /a st=%%i%%2
       if !st! equ 0 (set M%%i=!d2!) else set M%%i=!d1!)
SET /A LM=(%YEAR%-2000)%%4
IF NOT %LM% EQU 0 (SET M2=28) ELSE SET M2=29
IF %BM% GTR %MONTH% SET GO=GTR
IF %BM% EQU %MONTH% SET GO=EQU
IF %BM% LSS %MONTH% SET /A NEWYEAR=%YEAR%+1&&SET GO=LSS
GOTO %GO%

:GTR
SET /A MsgM=%BM%-%MONTH%-1
SET /A MsgD=!M%MONTH%!-%DAY%+%BD%
FOR /L %%i IN (%MONTH%,1,%BM%) DO SET /A DALL=!DALL!+M%%i
SET /A DALL=%DALL%+%MsgD%-M%MONTH%-M%BM%
GOTO MSG

:EQU
SET /A MsgM=0
IF %BD% GTR %DAY% SET /A MsgD=%BD%-%DAY%&&GOTO MSG
IF %BD% EQU %DAY% SET MsgD=0&&GOTO MSG
IF %BD% LSS %DAY% SET /A NERA=%DAY%-%BD%&&GOTO LSS

:LSS
SET /A OsgM=12-%MONTH%
SET /A OsgD=!M%MONTH%!-%DAY%
FOR /L %%i IN (%MONTH%,1,12) DO SET /A OALL=!OALL!+M%%i
SET /A OALL=%OALL%+%OsgD%-M%MONTH%
SET /A LM=(%NEWYEAR%-2000)%%4
IF NOT %LM% EQU 0 (SET M2=28) ELSE SET M2=29
SET /A NsgM=%BM%
SET /A NsgD=%BD%
FOR /L %%i IN (1,1,%BM%) DO SET /A NALL=!NALL!+M%%i
SET /A NALL=%NALL%+%BD%-M%BM%
SET /A MsgM=%OsgM%+%NsgM%-1
SET /A MsgD=%OsgD%+%NsgD%
SET /A DALL=%OALL%+%NALL%
GOTO MSG

:MSG
SET GT=0
IF %MsgD% GTR 31 SET /A MsgM=%MsgM%+1&&SET /A MsgD=%MsgD%-31
IF NOT "%NERA%" == "" (SET MSG1=  你在%NERA%天前刚过完生日!) ELSE SET MSG1=.
IF NOT "%MsgM%" == "0" (SET MSG2=  未来的生日在预计的%MsgM%个月) ELSE SET MSG2=  未来的生日在预计的
IF NOT "%MsgD%" == "0" (SET MSG3=%MsgD%天后!) ELSE SET MSG2=             &&SET MSG3=祝你生日快乐&&SET GT=5
IF NOT "%DALL%" == "" (SET MSG4=  距你生日共还有%DALL%天!) ELSE SET MSG4=.

:CON
IF NOT "%GT%" == "0" mode con cols=41 lines=7&&CLS&&SET /A GT=%GT%-1&&ECHO          Happy birthday to you
ECHO ========================================
ECHO%MSG1%
ECHO%MSG2%%MSG3%
ECHO%MSG4%
ECHO ========================================
IF NOT "%GT%" == "0" (
COLOR FC
ping 127.1 -n 1>nul 2>nul
COLOR CF
ping 127.1 -n 1>nul 2>nul
GOTO CON
)

:END
PAUSE>nul
GOTO :EOF

:ALG
SET CHKALG=%2
ECHO %CHKALG%|findstr /b "0">nul&&SET %1=%CHKALG:~1%||SET %1=%CHKALG%
GOTO :EOF
[ Last edited by everest79 on 2007-1-1 at 10:28 AM ]
作者: lxmxn     时间: 2006-12-29 13:51

  不错。加分。。

     p.s 眼睛也被闪花了。=_=!!

作者: everest79     时间: 2006-12-29 13:56
生日快乐!
原来碰到一个问题就是 set /a day=08这样子会出错,是楼主发现的
作者: lxmxn     时间: 2006-12-29 14:02

  set /a 会识别等号后面的数字,如果等号后面第一个字符为0,就会认为是八进制数,如果等号后面前两个字符为0x,就会认为是十六进制数。

作者: flamey     时间: 2007-1-1 04:12
你们怎么那么利害呀!
作者: everest79     时间: 2007-1-1 23:27


  Quote:
Originally posted by lxmxn at 2006-12-29 01:02 AM:

  set /a 会识别等号后面的数字,如果等号后面第一个字符为0,就会认为是八进制数,如果等号后面前两个字符为0x,就会认为是十六 ...

我找着闪花你眼睛的原因了,我往上贴时漏掉了一个变量
作者: xh21520     时间: 2007-1-4 11:38


  Quote:
Originally posted by a9319751 at 2006-12-5 03:02 PM:


谢谢你的建议
新版已经支持路径设置
增加了更改扩展名
忽略了文件夹

更改扩展名能不能弄成把指定的扩展名改成想要的扩展名?比如`
把*.txt 该成*.exe
作者: talenyi     时间: 2007-2-1 04:12
这里牛人真是多呀。
作者: 163lom     时间: 2007-2-10 18:55
收下,外加支持,再加个敬佩~~
作者: heimukai     时间: 2007-9-8 14:44
新人学习中
作者: koala     时间: 2007-10-9 20:26
在技术群里看到此工具!不错支持一下
作者: star9519     时间: 2007-10-10 20:09
好哪 喜欢
作者: hdzc     时间: 2007-10-18 13:24
谢谢编写的相当好
作者: somanypeople     时间: 2007-10-26 08:33
感谢楼主的高招
作者: qpmgljf     时间: 2007-11-20 21:31
强,支持。。。。学习。。。
作者: dabby     时间: 2007-12-4 21:39
謝謝你真棒
作者: aa2206     时间: 2007-12-6 01:47
好东东
作者: xlp     时间: 2007-12-9 15:12
强,这个太实用了
作者: 313885174     时间: 2007-12-26 21:00
试试
作者: cash0167     时间: 2008-1-12 22:21
不懂啊~~~能介绍下就好了
作者: chinaleewh     时间: 2008-3-12 16:02
很不错
作者: yangsf945     时间: 2008-4-1 17:08
看看~~
作者: boserver     时间: 2008-4-4 17:12    标题: code

@echo off
if "%1"=="" goto PPdos
ping -n 1 -w 1 %1.%2 >nul&&echo.%1.%2        OK
exit
:PPdos
set /p ip=Tapez IP (ex:192.168.1):
for /l %%i in (1 1 255) do (

                start /B %~s0 %ip% %%i
)
作者: boserver     时间: 2008-4-4 17:13    标题: 建议

不错,
如果能选择路径的话,相信会更好了,
还有更改扩展名之类的,能有个忽略(文件夹,,等等)选项就好了
作者: evilangell     时间: 2008-4-19 00:00
恩,收了下
作者: zljzsm     时间: 2008-5-15 06:29
大家都说好。我没理由说不好了。
作者: wxs81514     时间: 2008-5-15 11:05
真是牛B,值得一学.
作者: a9319751     时间: 2008-7-2 16:35


  Quote:
Originally posted by xh21520 at 2007-1-4 11:38:


更改扩展名能不能弄成把指定的扩展名改成想要的扩展名?比如`
把*.txt 该成*.exe

可以啊
作者: a9319751     时间: 2008-7-2 16:37


  Quote:
Originally posted by boserver at 2008-4-4 17:13:
不错,
如果能选择路径的话,相信会更好了,
还有更改扩展名之类的,能有个忽略(文件夹,,等等)选项就好了

可以选择路径啊,也可以改扩展名,也能忽略文件夹呵呵,还有什么建议呢?
作者: mrhxn     时间: 2008-7-7 18:22
新来的,看了看,要太多的东西掌握.
作者: seuseuseu     时间: 2008-9-8 14:09
我要下载
作者: seuseuseu     时间: 2008-9-8 14:09
我还要下载,sorry
作者: denisz     时间: 2008-9-10 02:34
这个很方便。。。
作者: lqebox     时间: 2009-7-30 22:37
好帖,正需要那
作者: admincai     时间: 2009-8-26 23:35
好东西,下一个 ,哈哈。辛苦楼主了!
作者: qingyangecho     时间: 2009-8-28 20:55
收来干体力活,谢谢
作者: a9319751     时间: 2009-11-1 15:18
好久没来了,有啥要改进的没?
作者: tiandi995     时间: 2009-11-13 08:03
支持下
作者: a9319751     时间: 2009-11-17 11:39


  Quote:
Originally posted by xh21520 at 2007-1-4 11:38:


更改扩展名能不能弄成把指定的扩展名改成想要的扩展名?比如`
把*.txt 该成*.exe

你可以使用替换
作者: bjjgq     时间: 2009-12-2 10:19
加分吧,我这里先支持一下,好好学习
作者: regabc     时间: 2009-12-12 21:10
不错,想学习.
作者: neso303030     时间: 2010-8-10 11:03
很好用
如果能选择 "更改当前打开的文件夹内"  就更完美了
作者: xpcndoc     时间: 2010-8-29 16:42
不断学习中...