0
刪除最後一個字符,我想創建一個通過txt文件進入目錄中,每個有#EXTINF在這行的批處理文件,刪除後15個字符..
基本上,如果可能的話,我想修剪任何長度超過特定數字的最後15-20個字符。 由於某種原因,我有一個軟件,如果行太長,它會搞砸了數據。
感謝
刪除最後一個字符,我想創建一個通過txt文件進入目錄中,每個有#EXTINF在這行的批處理文件,刪除後15個字符..
基本上,如果可能的話,我想修剪任何長度超過特定數字的最後15-20個字符。 由於某種原因,我有一個軟件,如果行太長,它會搞砸了數據。
感謝
對於一個文件:
@Echo OFF
(For /F "Usebackq Tokens=*" %%# in ("MyFile.txt") Do (
Echo "%%#" | FIND /I "#EXTINF" 1>NUL && (
Set "Line=%%#"
Call Set "Line=%%Line:~0,-1%%"
Call Echo %%Line%%
) || (
Echo %%#
)
))>"MyNewFile.txt"
Pause&Exit
所有文件:
@Echo OFF
For %%@ in (*.txt) DO (
(For /F "Usebackq Tokens=*" %%# in ("%%@") Do (
Echo "%%#" | FIND /I "#EXTINF" 1>NUL && (
Set "Line=%%#"
Call Set "Line=%%Line:~0,-1%%"
Call Echo %%Line%%
) || (
Echo %%#
)
))>"%%@_New.txt"
)
Pause&Exit
GnuSed比批次進行文本編輯更好的工具。 這是一個單一的文件
@echo off
sed "s/^\(.*#EXTINF.*\).$/\1/" "filein.txt" >"fileout.txt"
和多個文件(將來自fileone.txt fileone.new.txt)
@echo off
for /f "delims=" %%a in ('dir *.txt /b') do sed "s/^\(.*#EXTINF.*\).$/\1/" "%%a" >"%%~na.new%%~xa"
您是否知道令牌= *去除線前導空格? 「delims =」對於整條線來說總是更好。 – foxidrive 2013-04-24 07:39:22
嘿Elektro。你的腳本工作,但我需要它做兩件事:1:支持希伯來語(可能UTF8)2:它將保持相同的擴展名。我應該添加到批次中?謝謝一堆 – user2314297 2013-04-24 11:41:59
使用希伯來語代碼頁,請參閱關於CHCP命令和MS-DOS代碼頁。也許你需要使用** CHCP 862 **或** CHCP 1255 **而不是默認** CHCP 850 **。如果我的答案解決了您真正的問題,那麼請使用接受按鈕接受答案。我希望這有幫助。哦,還有關於**複製騙局的技巧。 – ElektroStudios 2013-04-24 12:06:03