先谢谢。
使用DOS批处理文件,我试图读取一个文本文件,其中包含几个带引号的完整路径,用空格分隔并写入每行包含一个路径的新文件。
例如,我想要转换此文件:
"C:\path\filename.doc" "C:\path\filename.doc" "C:\path\filename.doc" "C:\path\filename.doc"
进入这个:
"C:\path\filename.doc"
"C:\path\filename.doc"
"C:\path\filename.doc"
"C:\path\filename.doc"
我使用精彩的repl.bat
(by dbenham)取得了一些成功。
type "files.txt" | repl " " "\r\n" x l >"newfile.txt"
但是当文件名或路径中有空格时,它会在路径中间打破一条新线并破坏它。
我尝试使用转义字符将
^
作为搜索变量传递给repl,即repl "^" ^""
以及其他无欢乐的方式。
在一天结束时,我只需要将所有文件移动到另一个目录中,然后将生成的文本文件传递给另一个批量删除批处理文件进行处理,但也许有更好的方法即时通讯失踪?
答案 0 :(得分:0)
您可以使用以下批处理文件split.bat
并将其称为重定向文本文件的内容,并将输出重定向到另一个文件,如split.bat < files.txt > newfiles.txt
:
@echo off
set /P INFILE=
call :SPLIT %INFILE%
exit /B
:SPLIT
shift
if "%~0"=="" exit /B
echo "%~0"
goto :SPLIT
如果您未提供输入文件(< files.txt
),脚本会提示您输入以空格分隔的列表。
如果没有给出输出文件(> newfiles.txt
),则屏幕上会显示创建的以行分隔的新列表。
请注意,这不会验证您的输入文件是否符合所描述的格式。
此方法仅限于1021字节的列表长度(字符),之后的所有内容都将被截断!