0

我想创建一个批处理文件,该文件通过目录中的 txt 文件和其中包含 #EXTINF 的每一行,删除最后 15 个字符..

基本上,如果可能的话,我想从任何长于某个数字的行中修剪最后 15-20 个字符。出于某种原因,我有一个软件,如果线路太长,它会搞砸数据。

谢谢

4

2 回答 2

1

请参阅如何使用 Windows 命令行环境查找和替换文件中的文本?用于使用 Windows 批处理修改文本文件的各种选项。

以下简单代码使用REPL.BAT#extinf截断以(不区分大小写)开头的 600 个字符的长行。少于 600 个字符的行将完整保留。

type test.txt|repl.bat "^(#extinf.{593}).*$" "$1" I>test.txt.new
move /y test.txt.new test.txt >nul
于 2013-06-02T17:39:54.227 回答
0

User231429 写道:“我需要脚本遍历目录中的所有文件,并且以#extinf 开头的每一行,从末尾删除XX 个字符。”

下面的批处理文件正是这样做的:

@echo off
setlocal EnableDelayedExpansion

for %%f in (*.txt) do (
   (for /F "usebackq delims=" %%a in ("%%f") do (
      set "line=%%a"
      if "!line:~0,7!" equ "#extinf" set "line=!line:~0,-XX!"
      echo !line!
   )) > "%%~Nf.new"
)

REM del *.txt
REM ren *.new *.txt

if请注意,您必须将长命令中的 XX 替换为数字。

测试这个程序并检查 *.NEW 文件中的结果。如果结果正确,则从最后两行中删除 REM 部分。

该程序从文件中删除感叹号。如果需要,可以修复此细节。

于 2013-06-02T19:38:26.670 回答