
CODE: [Copy to clipboard][ Last edited by zw19750516 on 2008-4-3 at 06:04 PM ]@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
CODE: [Copy to clipboard]@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
| Quote: | |
|
| Quote: | |
|
CODE: [Copy to clipboard]即使这样通用性还是有问题,当文件名分分隔部分超过8个时,如1_1_1_1_1_1_1_1_1_1_1.txt时就会出现问题了。@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
CODE: [Copy to clipboard]@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
| Quote: | |
|
| Quote: | |
|
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) | Powered by Discuz! 2.5 |