CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение Iska »

Цитата 9119:



2) здесь нужно вывести окно с запросом о вводе текста и задать переменную
CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.




Рисовать окошко? Может как-то попроще, например брать текст из файла или вставлять из буфера обмена? Например:





Код:

Код: Выделить всё

$json.input.text = Get-Clipboard

Т.е. скопировал нужный текст в буфер и запустил скрипт.

PS. Если несколько строк, и это не поддерживается речевым движком, то можно их сконвертировать в одну строку:



Код:

Код: Выделить всё

$json.input.text = Get-Clipboard | Out-String
Аватара пользователя
9119

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение 9119 »

Цитата Foreigner:



или вставлять из буфера обмена
CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.




идея хорошая, но бывает что нет возможности скопировать сразу весь текст...

и скажем нажимешь сtrl+с 2-3 раза... тогда такой вариант как я понимаю не подходит...



Как будет выглядить вставка из файла?



p.s. можно и без рисования окошка...

достаточно чтобы скрипт стал на паузу и запросил ввод текста (чтоб можно было текст несколько раз копирнуть в данный сркипт.)
Вложения
text.zip
(318 байт) 0 скачиваний
text.zip
(318 байт) 0 скачиваний
Аватара пользователя
9119

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение 9119 »

Foreigner, можно совместить оба подхода — подставлять в тамошний InputBox default'ом значение из Буфера обмена. Тут тебе и возжожность визуального контроля, и возможность ручной коррекции — невеликая плата за лишнее нажатие Enter.
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение Foreigner »

Мне кажется надо просто параметр к скрипту добавить. Зачем останавливать скрипт и ждать ввода, указывайте сразу.



Выглядит как-то так
CMD/BAT - [решено] Внесение в реестр данных через BAT файл
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение Iska »

Цитата Vadikan:



Зачем останавливать скрипт и ждать ввод
CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.




в этом вся суть.... нужно разный текст постоянно менять, каждый раз менять в скрипте - не вариант, как впринципе и в отдельном файле (лишние движения в ввиде ctrl-v, ctrl-s ).

Тут как раз надо чтоб копировать из буфера, с возможностью корректировки на лету так сказать, не лазя по доп файлам...
Аватара пользователя
9119

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение 9119 »

Цитата 9119:



как это выглядит в powershell?
CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.




Если без особых изысков, то наподобие:



Код:

Код: Выделить всё

Add-Type -AssemblyName 'Microsoft.VisualBasic'
$sValue = [Microsoft.VisualBasic.Interaction]::InputBox('Enter value:', 'Enter value', (Get-Clipboard -Format Text))
$sValue

Это уже, конечно, не совсем чистый PoSH. А так-то можно хоть цельный диалог нарисовать, с подкидным дураком и блудницами:
Создание настраиваемого поля ввода - PowerShell | Microsoft Docs
.
Аватара пользователя
Vadikan

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение Vadikan »

Цитата Iska:



Если без особых изысков
CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.




как это совместить с вариантом предложенным на предыдущей странице?



Код:

Код: Выделить всё

$json = Get-Content text.json | ConvertFrom-Json
$json.input.text = "Новый текст"
$json | ConvertTo-Json | Set-Content new.json
Аватара пользователя
9119

Re: CMD/BAT - [решено] Удалить в текстовом файле все строки кроме одной нужной.

Сообщение 9119 »

Не проверялось:



Код:

Код: Выделить всё

Add-Type -AssemblyName 'Microsoft.VisualBasic'

$json = Get-Content text.json | ConvertFrom-Json
$json.input.text = [Microsoft.VisualBasic.Interaction]::InputBox('Enter value for node [json.input.text]:', 'Enter value', (Get-Clipboard -Format Text))
$json | ConvertTo-Json | Set-Content new.json
Ответить

Вернуться в «Скриптовые языки администрирования Windows»