以下代码尚有纰漏,请勿用于正式场合。正确的代码在10楼。
______________________________________
假设路径不存在空格、感叹号和&这些特殊字符,父目录下的文件为*.doc,子目录下的文件为*.word,那么,可以在当前文件夹下使用如下代码(为了提高效率,使用了临时文件;为了不重复处理,生成的txt文件放在当前文件根目录下的tmp文件夹中):- @echo off
- set /a num=0
- setlocal enabledelayedexpansion
- set tmpdir=%~d0\tmp
- md %tmpdir% 2>nul
- for /f "delims=" %%i in ('dir /ad /b') do (
- for /f "delims=" %%j in ('dir /a-d /b %%i\*.doc') do (
- set /a num1=!num!%%6+1
- if !num1! equ 1 set /a num2+=1
- call :output %%i %%j !num!
- set /a num+=1
- )
- )
- del /a %tmpdir%\tmp>nul
- pause
- exit
-
- :output
- dir /a-d /b %1\word\*.word>%tmpdir%\tmp
- for /f "delims=" %%i in ('more +!num! %tmpdir%\tmp') do (
- if !num1! equ 1 (
- echo ^<p^>>%tmpdir%\%1!num2!.txt
- set str=%2
- )
- if !num1! geq 1 (
- echo ^<a %2 !num1!^>^<word/%%i^>>>%tmpdir%\%1!num2!.txt
- )
- if !num1! equ 6 (
- echo ^<p^>>>%tmpdir%\%1!num2!.txt
- echo ^<p^>!str!^<p^>>>%tmpdir%\%1!num2!.txt
- )
- goto :eof
- )
- goto :eof
复制代码 测试环境使用如下代码构建,处理120个文件耗时19S左右,效率不是很高(WinXPSP3,Intel Pentium processor 1.60GHz,512MB内存,HPV2009AP笔记本):- @echo off
- for %%i in (psp nds bbs) do (
- md %%i 2>nul
- md %%i\word 2>nul
- for /l %%j in (1,1,20) do cd.>%%i\doc%%j.doc&cd.>%%i\word\word%%j.word
- )
复制代码
|