我 大家好,
我需要根据文件中匹配的变量内容拆分文件。 我需要在分割参数(此处为" ///")上拆分文件,只有当以25开头的行:分割参数之前和之后的行不同时。 然后应使用:25:标记的表达式命名文件。 我需要使用.cmd命令执行此操作... 我已经厌倦了令牌,但一直没有成功。 有人可以帮我这个吗?
例如,下面的文件初始文件:
:01:BLABLA
:25:123456
:71:BLABLABLA1
:86:BLABLABLA2
:71:BLABLABLA3
:86:BLABLABLA4
///
:25:123456
:71:BLABLABLA5
:86:BLABLABLA6
:71:BLABLABLA7
:86:BLABLABLA8
///
:25:123457
:71:BLABLABLA0
:86:BLABLABLA9
应分为两个文件:
123456.TXT
:01:BLABLA
:25:123456
:71:BLABLABLA1
:86:BLABLABLA2
:71:BLABLABLA3
:86:BLABLABLA4
///
:25:123456
:71:BLABLABLA5
:86:BLABLABLA6
:71:BLABLABLA7
:86:BLABLABLA8
123457.TXT
:25:123457
:71:BLABLABLA0
:86:BLABLABLA9
答案 0 :(得分:0)
试试这个:
Queries
只需使用正确的文件/路径替换@echo off
setlocal EnableDelayedExpansion
set inFile=inputTextFile.txt
set outFile=tempFile.txt
for /F "tokens=*" %%L in (%inFile%) do (
set currentline=%%L
if "%%L"=="///" (
set outFile=tempFile.txt
)
if "!currentLine:~0,4!"==":25:" (
set outFile=!currentLine:~4!.txt
if exist tempFile.txt (
if exist !outFile! (
copy !outFile!+tempFile.txt !outFile!
del tempFile.txt
) else ren tempFile.txt !outFile!
)
)
echo %%L>>!outFile!
)
。
答案 1 :(得分:0)
@echo off
setlocal EnableDelayedExpansion
del temp.tmp *.out 2> NUL
set "file=not25tag"
for /F "tokens=1* delims=:" %%a in (input.txt) do (
if "%%a" equ "25" set "file=%%b"
if "%%a" neq "///" (
echo :%%a:%%b>> temp.tmp
) else (
if not exist "!file!.out" (
ren temp.tmp "!file!.out"
) else (
echo ///>> "!file!.out"
type temp.tmp >> "!file!.out"
del temp.tmp
)
set "file=not25tag"
)
)
if not exist "!file!.out" (
ren temp.tmp "!file!.out"
) else (
echo ///>> "!file!.out"
type temp.tmp >> "!file!.out"
del temp.tmp
)
ren *.out *.txt