自己写的分割文件的批处理如下:- @echo off
- setlocal enabledelayedexpansion
- if not exist Fenge md Fenge
- for /f "delims=" %%a in ('findstr .* abc.txt') do (
- set Var=%%a
- set Var=!Var:*:=!
- if "!Var:~0,1!"=="@" (
- set Name=!Var!
- cd.>"Fenge\!Name!.txt"
- ) else (
- echo,!Var!>>"Fenge\!Name!.txt"
- )
- )
- pause
复制代码 将一个文件分割为多个文件。按行首字符是“@”的行来分割文件,此行作为被分割文件的文件名。
但是如果遇到特殊字符比如“!”,就会被忽略。
abc.txt样式如下:- @副本
- asdf!fff jkhhjj hgjjj
- sfsfsdfgsdg
-
- @无2 3
- asd!ffff&&?
- sfsfsdfgsdg
-
- @123
- asdffff
- sfsfsdfgsdg
-
- @a
- asdffff
- sfsfsdfgsdg
复制代码 运行批处理。上面文本就被分割@副本.txt,@无2 3.txt,@123.txt,@a.txt等4个文件。
但是所有的字符“!”在被分割的文本中消失了。之后也试过在循环内部开通或退出变量延迟,而一旦退出就会引起文件名变量“!Name!” echo关闭,也不行。
不知如何解决。 |