Войти

Показать полную графическую версию : С помощью bat-скрипта удалить в текстовом файле все строчки, кроме первой, при UTF-8


KOD65001
25-06-2021, 16:53
Как с помощью bat-скрипта удалить в текстовом файле все строчки, кроме первой, при условии что содержимое текста в кодировке UTF-8 ?

Elven
25-06-2021, 17:42
Например так
powershell -c 'for ($i = 0; $i -lt 1; $i++) { (Get-Content -Encoding utf8 ./file.txt)[$i] | Out-File -Encoding utf8 ./file.txt}'

KOD65001
25-06-2021, 18:07
powershell -c 'for ($i = 0; $i -lt 1; $i++) { (Get-Content -Encoding utf8 ./file.txt)[$i] | Out-File -Encoding utf8 ./file.txt}' »
Спасибо Elven, но нужно в bat

из интернета откопал как удалить первую строчку, а остальные строчки оставить,

more +1 "file.txt" > "a"
move /Y "a" "file.txt"
exit /b 0

Вот что-то типа такого, только мне нужно на оборот - оставить только самую первую строку, через bat команды

Elven
25-06-2021, 19:01
KOD65001, в bat. Вызываем через bat встроеную в винды тулу "powerrshell" и скармливаем ему через -c команду. Так что код можно скопировать в файл, оставить ему расширение cmd (или bat) и запустить нужной папке. Если на голом pwsh, то было бы на полтора десяка символов меньше.

KOD65001
25-06-2021, 20:52
Elven, наверно у меня руки кривые :) скармливание в "powerrshell" не работает у меня, ничего в текстовом файле не меняется. Вопрос еще актуален!

greg zakharov
25-06-2021, 22:03
sed (https://github.com/mbuilov/sed-windows)'ом:sed -i.bak "1!d" file.txtилиsed -i.bak q file.txtpwsh:pwsh -c "gc file.txt -to 1" > result.txtРазумеется вместо file.txt указываете свой файл с корректным путём.

KOD65001
25-06-2021, 22:39
greg zakharov, нету никаких изменений в текстовом файле (file.txt).
pwsh -c "gc file.txt -to 1" > result.txt »
В последним варианте - создается пустой без строк текстовый файл result.txt

alpap
25-06-2021, 22:43
@echo off
set "f=file.txt"
<"%f%" set /p Line1=
>"%f%" echo %Line1%
pause

KOD65001
26-06-2021, 00:44
alpap, теперь все работает как надо, большое спасибо :) и всем остальным тоже за помощь

Iska
26-06-2021, 09:10
alpap, я знал, я знал ;), что Вы не подкачаете!




© OSzone.net 2001-2012