Board logo

标题: [分享]批处理递归算法 [打印本页]

作者: genteman     时间: 2007-12-19 16:40    标题: [分享]批处理递归算法
花了一天的时间研究出来的,希望对大家有用。
 
::genteman - 2007-12-19 -CMD@WinXP Pro
::contact amdaround@163.com
@echo off
setlocal enabledelayedexpansion
if "%~1"=="" exit /b
if not exist %~s1\nul exit /b
cd "%~1"
%~d1
:rec
if exist "%cd%\*.txt" (
for /f "delims=" %%p in ('cd') do set filename="%%~np"
type *.txt>"..\!filename: =!.txt"
)
for /f %%i in ('dir "%cd%" /ad /b') do (
pushd "%cd%"
cd "%%i"
call :rec
popd
)


Last edited by genteman on 2007-12-20 at 09:13 AM ]

作者: genteman     时间: 2007-12-19 16:45
下面的代码用for命令提供的功能实现


::genteman - 2007-12-19 -CMD@WinXP Pro
::contact amdaround@163.com
rem @echo off

if "%~1"=="" exit /b
if not exist %~s1\nul exit /b

for /r "%~1" %%i in (.) do (
cd "%%~fi"
%%~di
if exist *.txt type "*.txt">..\"%%~ni.txt"
)


Last edited by genteman on 2007-12-20 at 09:13 AM ]

作者: genteman     时间: 2007-12-19 16:46
用for命令提供的功能另一种实现方法

::genteman - 2007-12-19 -CMD@WinXP Pro
::contact amdaround@163.com
rem @echo off
if "%~1"=="" exit /b
if not exist %~s1\nul exit /b

for /f "delims=" %%i in ('dir "%~1" /ad /b /s') do (
cd "%%~fi"
%%~di
if exist *.txt type "*.txt">..\"%%~ni.txt"
)



Last edited by genteman on 2007-12-20 at 09:14 AM ]