中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 06:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 无界面版本 批量文件改名 beat1.3 [20061214]更新 查看 12,422 回复 63
16 发表于 2006-12-14 05:01 ·  中国 安徽 合肥 电信
新手上路
积分 14
发帖 6
注册 2006-11-03 22:59
19年会员
UID 69456
性别 男
状态 离线
很好用的工具 只是不知道为什么...
拖放文件夹 然后执行 会假死

[ Last edited by linjie on 2006-12-13 at 04:13 PM ]
17 发表于 2006-12-14 05:10 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
Originally posted by linjie at 2006-12-14 05:01:
拖放文件夹 然后执行 会假死



不好意思
变量没加""
对空格支持不好
对不起
顶楼已更新
bat c c++
18 发表于 2006-12-14 05:16 ·  中国 安徽 合肥 电信
新手上路
积分 14
发帖 6
注册 2006-11-03 22:59
19年会员
UID 69456
性别 男
状态 离线
现在正常了 楼主很强...
19 发表于 2006-12-14 08:01 ·  中国 江西 赣州 电信
高级用户
★★
论坛上抢劫的
积分 551
发帖 246
注册 2006-09-21 12:35
19年会员
UID 63270
状态 离线
忍不住想说,第一个简单重命名代码也太复杂了吧!!给一个我的批量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 ]
20 发表于 2006-12-15 01:54 ·  中国 河南 郑州 电信
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
20年会员
UID 48707
状态 离线
Originally posted by lotus516 at 2006-12-14 08:01:
忍不住想说,第一个简单重命名代码也太复杂了吧!!给一个我的批量COPY并重命名!!
1  @echo off
2 set /p msg=请输入要重命名的路径:
3 set msg=%msg:"= ...

也不错,哦
bat c c++
21 发表于 2006-12-29 11:28 ·  中国 浙江 宁波 鄞州区 电信
新手上路
积分 3
发帖 2
注册 2006-12-29 10:28
19年会员
UID 74920
性别 男
状态 离线
谢谢!!真是太好了!!
22 发表于 2006-12-29 13:20 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
Originally posted by a9319751 at 2006-12-4 03:36 PM:
C:\Documents and Settings\Administrator>pren
GNU Pren beat1.3
Usage: pren

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 "^**">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 ]
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
lxmxn +4 2006-12-29 13:50
a9319751 +4 2007-01-01 05:23
23 发表于 2006-12-29 13:51 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  不错。加分。。

     p.s 眼睛也被闪花了。=_=!!
24 发表于 2006-12-29 13:56 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
生日快乐!
原来碰到一个问题就是 set /a day=08这样子会出错,是楼主发现的
25 发表于 2006-12-29 14:02 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  set /a 会识别等号后面的数字,如果等号后面第一个字符为0,就会认为是八进制数,如果等号后面前两个字符为0x,就会认为是十六进制数。
26 发表于 2007-01-01 04:12 ·  中国 广东 肇庆 电信
初级用户
★★
积分 152
发帖 74
注册 2005-12-01 23:06
20年会员
UID 46314
状态 离线
你们怎么那么利害呀!
27 发表于 2007-01-01 23:27 ·  中国 广东 广州 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
Originally posted by lxmxn at 2006-12-29 01:02 AM:

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


我找着闪花你眼睛的原因了,我往上贴时漏掉了一个变量
28 发表于 2007-01-04 11:38 ·  中国 广西 南宁 中移铁通
新手上路
积分 2
发帖 1
注册 2007-01-04 10:54
19年会员
UID 75424
性别 男
状态 离线
Originally posted by a9319751 at 2006-12-5 03:02 PM:


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


更改扩展名能不能弄成把指定的扩展名改成想要的扩展名?比如`
把*.txt 该成*.exe
29 发表于 2007-02-01 04:12 ·  中国 浙江 温州 乐清市 电信
新手上路
积分 7
发帖 4
注册 2007-01-22 09:37
19年会员
UID 77327
性别 男
状态 离线
这里牛人真是多呀。
30 发表于 2007-02-10 18:55 ·  中国 山西 移动
初级用户
积分 27
发帖 14
注册 2007-02-10 16:57
19年会员
UID 79176
性别 男
状态 离线
收下,外加支持,再加个敬佩~~
论坛跳转: