@echo off
for /f "delims=: tokens=1" %%i in ('dir /a-d /b d:\temp ^| findstr /n .*') do (
set str=%%i
set /a str-=1
call :lp %%str%%
)
pause
:lp
set var=skip=%1
if "%var%"=="skip=0" set var=
set n=1
:begin
for /f "%var% delims=_ tokens=%n%" %%i in ('dir /a-d /b d:\temp') do (
set /a n+=1
set b=%%i
setlocal enabledelayedexpansion
set b=!b:.txt=!
echo !b!&goto begin
endlocal
)
echo.&goto :eof
@echo off
for /f %%a in (test.txt)do set e=%%~na &call:d %%e:_= %%
pause
:d
if [%1]==[] goto :eof
echo.%1
shift
goto :d
Originally posted by abcd at 2008-4-3 19:05:自己测试吧。。。。。。。。。。。这样不 ...@echo off setlocal enabledelayedexpansion for /r d:\tmp %%i in (*) do ( set str=%%~ni set str=!str:_=;! for %%j in (!str!) do echo %%j echo. ) pause>nul
Originally posted by plp626 at 2008-4-3 19:02: 楼上,想得有点复杂了吧. 假设test.txt内为: d:\tmp\11_223_321_42.txt d:\tmp\12_456.txt @echo off for /f %%a in (test.txt)do set e=%%~na &call:d %%e:_= %% pause :d i ...shift变量移位确实妙!!!但这段代码对两个文件之间的分隔还是没实现,echo.%1中eho.是无效命令,改为:
@echo off
for /f %%a in (test.txt)do set e=%%~na &call:d %%e:_= %%
pause
:d
if [%1]==[] echo.&goto :eof
echo %1
shift
goto :d
@echo off
for /f "delims=" %%i in (test.txt) do call :loop "%%~ni"
pause
:loop
for /f "tokens=1* delims=_" %%a in ("%~1") do (
echo %%a
if not "%%b"=="" call :loop "%%b"
)
goto :eof
Originally posted by zw19750516 at 2008-4-3 07:28 PM: shift变量移位确实妙!!!但这段代码对两个文件之间的分隔还是没实现,echo.%1中eho.是无效命令,改为: [code]@echo off for /f %%a in (test.txt)do set e=%%~n ...10000个也照样分,你测试.
Originally posted by zw19750516 at 2008-4-3 07:22 PM: 自己测试吧。。。。。。。。。。。你的意思是不行??