|
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 |
|
|
linjie
新手上路
积分 14
发帖 6
注册 2006-11-3
状态 离线
|
|
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 |
|
|
classic
新手上路
积分 3
发帖 2
注册 2006-12-29
状态 离线
|
|
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
状态 离线
|
|
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
状态 离线
|
|
2007-2-1 04:12 |
|
|
163lom
初级用户
积分 27
发帖 14
注册 2007-2-10
状态 离线
|
『第
30 楼』:
收下,外加支持,再加个敬佩~~
|
|
2007-2-10 18:55 |
|