A very useful tool. Just don't know why...
Drag and drop a folder and then execute, it will freeze
Drag and drop a folder and then execute, it will freeze
Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!
Originally posted by linjie at 2006-12-14 05:01:
Dragging and dropping a folder and then executing will cause a freeze
1 @echo off
2 set /p msg=Please enter the path to be renamed:
3 set msg=%msg:"=%
4 set /p word=Please enter the file extension to be copied:
5 set word=%word:"=%
6 set /p msg2=Please enter the new folder location and folder name (can not exist):
7 set msg2=%msg2:"=%
8 set /p word2=Please enter the new file extension:
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.lstOriginally posted by lotus516 at 2006-12-14 08:01:
Can't help but want to say, the first simple renaming code is too complicated!! Give my batch COPY and rename!!
1 @echo off
2 set /p msg=Please enter the path to be renamed:
3 set msg=%msg:"= ...
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
Originally posted by lxmxn at 2006-12-29 01:02 AM:
set /a will recognize the number after the equal sign. If the first character after the equal sign is 0, it will be considered an octal number. If the first two characters after the equal sign are 0x, it will be considered a hexadecimal...