我想创建一个批处理文件,该文件通过目录中的 txt 文件和其中包含 #EXTINF 的每一行,删除最后 15 个字符..
基本上,如果可能的话,我想从任何长于某个数字的行中修剪最后 15-20 个字符。出于某种原因,我有一个软件,如果线路太长,它会搞砸数据。
谢谢
我想创建一个批处理文件,该文件通过目录中的 txt 文件和其中包含 #EXTINF 的每一行,删除最后 15 个字符..
基本上,如果可能的话,我想从任何长于某个数字的行中修剪最后 15-20 个字符。出于某种原因,我有一个软件,如果线路太长,它会搞砸数据。
谢谢
请参阅如何使用 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
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 部分。
该程序从文件中删除感叹号。如果需要,可以修复此细节。