CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Ответить
 • Просмотры: 1
Аватара пользователя
V!RTuE

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение V!RTuE »

вам все еще нужно решение ?



выдачу произвольного текста заключенного в теле бат файла в выполнением того что было до и того что после этого текста ?









Код:

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

cat_embedded_text.cmd



Код:

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

CMD doing some stuff
If you want
If you want to
If you want to know
If you want to know PowerShell ?
That is all !@#$%^^&*()_ you want to know ...
CMD doing other stuff
CMD doing some other stuff



пример привести не жалко но боюсь флейма :-)



пример печатающего тела





Код:

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

@echo OFF
echo CMD doing some stuff
powershell.exe "&{ $p = $false; (get-content -path $args[0])| foreach-object {if ($_ -match '^REM D4D5BBCD' ){ $p = $false } if ($p) { $_ } ; if ($_ -match '^REM FAE04EC0'){ $p = $true } } }" %~dpnx0
echo CMD doing other stuff
call :AFTER
goto :EOF
REM FAE04EC0
If you want
If you want to
If you want to know
If you want to know PowerShell ?
That is all !@#$%^^&*()_ you want to know ...
REM D4D5BBCD
:AFTER
echo doing some other stuff
goto :EOF
Аватара пользователя
V!RTuE

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение V!RTuE »

Serguei Kouzmine, тут уже комбинирование с powershell идет. а он не на всех компах может корректно работать как показала практика. Например, на win7x64 home basic msdn это не сработает. интересно решение чисто с помощью cmd/bat.
Аватара пользователя
V!RTuE

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение V!RTuE »

добавьте



Код:

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

-executionpolicy bypass

если все таки не работает покажите диагностику



цмд это очень архаичный интерпретатор и

использовать его это примерно как добывать огонь трением

одним куском дерева о другой

https://ru.wikipedia.org/wiki/%D0%97...B3%D0%BD%D1%8F




нужно иметь серезные причины так вот себя ограничивать
Аватара пользователя
Serguei Kouzmine

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение Serguei Kouzmine »

скриншот
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
V!RTuE

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение V!RTuE »

Serguei Kouzmine, мне надо не на экран вывести текст, а экспортировать его в файл test.txt, например. Как это сделать?

В коде не хватает кавычек, иначе не работает, если есть пробелы в пути до батника

Код:

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

powershell.exe "&{ $p = $false; (get-content -path $args[0])| foreach-object {if ($_ -match '^REM D4D5BBCD' ){ $p = $false } if ($p) { $_ } ; if ($_ -match '^REM FAE04EC0'){ $p = $true } } }" '%~dpnx0'
Аватара пользователя
V!RTuE

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение V!RTuE »

Цитата DJ Mogarych:



Ставится Powershell 5.1 и всё прекрасно работает.
CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat




Сейчас проверил и там стоит 2.0. Хорошо, когда это личный комп и только на нем запускать надо скрипт. Но нужна максимальная универсальность, чтобы на любом компе, даже старом, всё работало. Поэтому и был выбран cmd/batch.

P.S.: этот код там сработал
Аватара пользователя
Serguei Kouzmine

Re: CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat

Сообщение Serguei Kouzmine »

Цитата V!RTuE:



мне надо не на экран вывести текст, а экспортировать его в файл test.txt, например. Как это сделать
CMD/BAT - [решено] Как записать в txt файл большой кусок текста с помощью bat






это сделать просто





Код:

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

set DEBUG=true
.\print_embedded_text.cmd dummy.txt



Код:

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

CMD doing some stuff
CMD doing other stuff
doing some other stuff
contents of dummy.txt
If you want
If you want to
If you want to know
If you want to know PowerShell ?
That is all !@#$%^^&*()_ you want to know ...





Код:

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

print_embedded_text.cmd



Код:

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

@echo OFF
echo CMD doing some stuff
REM NOTE: for some reason cannot break command into multiple lines
REM powershell.exe -executionpolicy bypass ^
REM ...
set OUTPUTFILE=%~1
if "%OUTPUTFILE%" == "" set OUTPUTFILE=output.txt
powershell.exe -executionpolicy bypass "&{ $p = $false; (get-content -path $args[0])| foreach-object {if ($_ -match '^REM DATA_END' ){ $p = $false } if ($p) { $_ } ; if ($_ -match '^REM DATA_START'){ $p = $true } } | out-file -encoding ascii -filepath $args[1] }" "%~dpnx0" "%OUTPUTFILE%"
echo CMD doing other stuff
call :AFTER
if /i "%DEBUG%"=="true" echo contents of %OUTPUTFILE%&&type %OUTPUTFILE%
goto :EOF 
REM DATA_START
If you want
If you want to
If you want to know
If you want to know PowerShell ?
That is all !@#$%^^&*()_ you want to know ...
REM DATA_END
:AFTER
echo doing some other stuff
goto :EOF
Ответить

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