中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 无界面版本 批量文件改名 beat1.3 [20061214]更新
« [1] [2] [3] [4] [5] »
作者:
标题: 无界面版本 批量文件改名 beat1.3 [20061214]更新 上一主题 | 下一主题
linjie
新手上路





积分 14
发帖 6
注册 2006-11-3
状态 离线
『第 16 楼』:  

很好用的工具 只是不知道为什么...
拖放文件夹 然后执行 会假死

[ Last edited by linjie on 2006-12-13 at 04:13 PM ]

2006-12-14 05:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 17 楼』:  



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

不好意思
变量没加""
对空格支持不好
对不起
顶楼已更新



bat c c++
2006-12-14 05:10
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
linjie
新手上路





积分 14
发帖 6
注册 2006-11-3
状态 离线
『第 18 楼』:  

现在正常了 楼主很强...

2006-12-14 05:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『第 19 楼』:  

忍不住想说,第一个简单重命名代码也太复杂了吧!!给一个我的批量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 ]

2006-12-14 08:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
a9319751
中级用户





积分 439
发帖 170
注册 2006-1-9
状态 离线
『第 20 楼』:  



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

也不错,哦



bat c c++
2006-12-15 01:54
查看资料  发送邮件  发短消息 网志  OICQ (5040366)  编辑帖子  回复  引用回复
classic
新手上路





积分 3
发帖 2
注册 2006-12-29
状态 离线
『第 21 楼』:  

谢谢!!真是太好了!!

2006-12-29 11:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 22 楼』:  



  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 ]

   此帖被 +8 点积分      点击查看详情   
评分人:【 lxmxn 分数: +4  时间:2006-12-29 13:50
评分人:【 a9319751 分数: +4  时间:2007-1-1 05:23


2006-12-29 13:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 23 楼』:  


  不错。加分。。

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


2006-12-29 13:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 24 楼』:  

生日快乐!
原来碰到一个问题就是 set /a day=08这样子会出错,是楼主发现的

2006-12-29 13:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 25 楼』:  


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


2006-12-29 14:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
flamey
初级用户





积分 152
发帖 74
注册 2005-12-1
状态 离线
『第 26 楼』:  

你们怎么那么利害呀!

2007-1-1 04:12
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 27 楼』:  



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

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

我找着闪花你眼睛的原因了,我往上贴时漏掉了一个变量

2007-1-1 23:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xh21520
新手上路





积分 2
发帖 1
注册 2007-1-4
状态 离线
『第 28 楼』:  



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


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

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

2007-1-4 11:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
talenyi
新手上路





积分 7
发帖 4
注册 2007-1-22
状态 离线
『第 29 楼』:  

这里牛人真是多呀。

2007-2-1 04:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
163lom
初级用户





积分 27
发帖 14
注册 2007-2-10
状态 离线
『第 30 楼』:  

收下,外加支持,再加个敬佩~~

2007-2-10 18:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: