for /f "tokens=1*delims=:" %%a in ('findstr /n "^" "file.txt"') do for /f "delims=~" %%c in ("%%~b") do >"text%%a.txt" echo(%%c
@ECHO OFF SETLOCAL SET "destdir=c:\destdir" FOR /f "tokens=1*delims=:" %%a IN ('findstr /n "." q21239387.txt') DO ( >"%destdir%\filename%%a.txt" ECHO(%%b ) GOTO :EOF
哪里 q21239387.txt 是我用作测试输入的文件的名称。
q21239387.txt
档 filename1.txt .. filename99.txt 在目标目录中创建(99是文件中的#行)
filename1.txt
filename99.txt
注意 - 将无法正确输出以。开头的源行 : 如果这是一个问题。
这应该创建调用的文件 00000001.txt 并增加每行的数量。
00000001.txt
如果包含任何行 ! 那么它需要额外的修改。
!
@echo off setlocal enabledelayedexpansion set c=0 for /f "delims=" %%a in (file.txt) do ( set /a c+=1 set name=0000000!c! set name=!name:~-8!.txt >!name! echo %%a )
我在这里提出python。任何shell脚本都更具可读性。
f=open("filename") lines = f.read().split('~') for (n, line) in enumerate(lines): open( "newname{}".format(n), "w" ).write(line)