Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление 14 последних символов в каждой строке в файле (http://forum.oszone.net/showthread.php?t=348051)

nexxie 20-02-2021 19:06 2950774

Удаление 14 последних символов в каждой строке в файле
 
Добрый день!
Нужна ваша помощь.
Есть текстоый файл(inFile), в нем указаны пути до файлов такого вида
С:\...\filename1.sql: windows-1251
С:\...\filename2.sql: windows-1251
С:\...\filename3.sql: windows-1251
.................................................
С:\...\filenameN.sql: windows-1251

Нужно удалить 14 симоволов, или до .sql . Можно сохранить в этот файл, либо в другой. Я попробовал вот так, но что-то не вышло
Код:

@echo off
setlocal enabledelayedexpansion
set ifile=inFile.txt
set tfile=outFile.txt
set find=windows

if exist %tfile% del /Q %tfile%

for/F "tokens=* delims=, " %%a IN (%ifile%) DO (
    set line=%%a
    if !line!==%find% ( set line=%line:~0,-14%)
    echo !line!>> %tfile%
        )


Fors1k 20-02-2021 19:30 2950779

Код:

param(
   
$pathIN  = "D:\inFile.txt",
    $pathOUT = "D:\outFile.txt"
)
cls

(
gc $pathIN)-replace".{14}$"|
Out-File $pathOUT


NickM 20-02-2021 20:07 2950785

nexxie, 5 копеек вставлю, разбавил Ваш код примерами с форума:

Код:

@echo off
setlocal enabledelayedexpansion
set ifile=inFile.txt
set tfile=outFile.txt
set sfind=windows

if exist %tfile% del /Q %tfile%

for /F "tokens=* delims=, " %%a IN (%ifile%) DO (
echo %%a | findstr.exe /c:!sfind! > nul && set line=%%a && set line=!line:~0,-15! && echo.!line! >> !tfile!
)


nexxie 20-02-2021 21:08 2950794

Спасибо всем. Я нашел решение. Может кому будет интересно
Код:

@echo off
setlocal enabledelayedexpansion
set ifile=inFile.txt
set tfile=outFile.txt
set find=windows

if exist %tfile% del /Q %tfile%

(for /F "tokens=* usebackq delims=" %%a In ("%ifile%") do (
        set line=%%a
        Echo !line:~0,-14!
))>"%tfile%"


Iska 20-02-2021 21:23 2950796

nexxie, строка:
Цитата:

Цитата nexxie
Код:

if exist %tfile% del /Q %tfile%
»

в данном контексте лишняя — файл %tfile% в любом случае будет перезаписан.

nexxie 20-02-2021 21:41 2950801

Спасибо!


Время: 02:37.

Время: 02:37.
© OSzone.net 2001-