Feeding multiline input (here documents) to commands in cmd.exe scripts

In Bash, I can do something like this

somecmd << END a lot of text here END 

to feed input to a command directly from a script. I need to do the same in CMD.exe batch files (.cmd scripts). Is it possible?

1

3 Answers

I believe you can use a single ^ character for each line.

EG:

echo This is a really long ^ text message that spans multiple ^ lines 

returns:

C:\Users\Jonno>echo This is a really long ^ More? text message that spans multiple ^ More? lines This is a really long text message that spans multiple lines 
4

It's simple, but not as clean looking as it is in Unix/Linux. Try this:

(@echo.a lot of @echo.text here ) | somecmd 

Note that the . after the echo statement allows you to begin a line with blanks. The @ symbol is needed to prevent the echo statement from being sent to somecmd. You can eliminate the @ symbol thusly:

echo off (echo.a lot of echo.text here ) | somecmd echo on 
4

Until now, I don't have found any solution to this problem !

I have only a workaround in defining some BAT scripts.

Using my script, the solution to your problem look like this

call INIT-TRAMEX.bat %assign-sysout% FILE.SYSOUT.TXT %w% a lot of %w% text here somecmd <%sysout% 

But in all cases, the direct indirection is impossible.

INIT-TRAMEX.bat file defines %ASSIGN-SYSOUT% and %W% variables

::****************************************************************************** ::* INIT-TRAMEX.bat ::****************************************************************************** @echo OFF set scriptdir=c:\Scripts set ASSIGN-SYSOUT=call %scriptdir%\AssignSysout.bat set WRITE-TEXT=call %scriptdir%\WriteText.bat set W=call %scriptdir%\WriteText.bat 

ASSIGN-SYSOUT script defines %sysout% variable and create an empty file. It contains following lines

set sysout=%1 @echo.>%sysout% del %sysout% 

WRITE-TEXT script contains following lines

IF "%1"=="" goto line echo %* >>%sysout% goto quit :line echo. >>%sysout% :quit 

Using this tips, DOS script is more readable.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like