Computer Hope

Microsoft => Microsoft DOS => Topic started by: graceguo on January 11, 2006, 12:35:23 PM

Title: Align text in batch file
Post by: graceguo on January 11, 2006, 12:35:23 PM
Hi,

I am writting a batch file to print the tests results. Like

if %errorlevel%==0 (
echo Test %test%  Passed >>output.txt
) else (
echo Test %test% Failed >>output.txt
)

Since the length of  %test% will change for different tests, Is there any way to let "Passed" or "Failed" start at the same column for all of the tests in output.txt.
Like

Test test1 flags         Passed
Test test2                Passed
...

Thanks for any help!
Title: Re: Align text in batch file
Post by: Sidewinder on January 14, 2006, 06:51:28 AM
Doubtful you can. You would need to insert a tab character (ascii 10) in each line. In an unformatted text file the tab character would be meaningless. Any of the scripting languages could do this.

Back to the drawing board. :)
Title: Re: Align text in batch file
Post by: guest01 on January 12, 2013, 08:47:27 PM
Not sure if this helps found this on the Hak5 forum maybe it helps

Part 1   

you need to amend it for your batch file

cscript //nologo .\DUH.vbs >> ..\..\Documents\logfiles\%computername%.log 2>&1
TYPE ..\..\Documents\logfiles\%computername%.log | find ":::" | find /V "NO PASSWORD" | find /V "ASPNET" | find /V "HelpAssistant" >> ..\..\Documents\logfiles\%computername%.log 

Part 2

.vbs file

on error resume next
set sh = createobject("Shell.Application")
const ssfHISTORY = 34
set history = sh.NameSpace(ssfHISTORY)
for each item in history.items
   wscript.echo history.GetDetailsOf(item,-1)
   if item.isFolder then
      set itFol = item.GetFolder
      for each item2 in itFol.items
         wscript.echo vbtab & itFol.GetDetailsOf(item2,-1)
      Next
      wscript.echo String (80,"-")
   end if
next


Keep the vbs file in the same directory as the batch
Title: Re: Align text in batch file
Post by: Squashman on January 12, 2013, 09:38:46 PM
You dug up a 7 year old thread that I don't see how what you posted solved the OP's original question.
Title: Re: Align text in batch file
Post by: Salmon Trout on January 13, 2013, 03:07:31 AM
You dug up a 7 year old thread that I don't see how what you posted solved the OP's original question.

The question as stated was essentially unanswered, so see here, Google indexer!

It is a simple matter to justify text in a batch script by padding it on the left or right with a suitable number of a pad character e.g. space, dot, whatever and then take a slice of desired length (as long as, or longer than the max length to be processed) starting at the left or right. These are just simple examples and of course refinements are possible.

REM left justify text within a column 16 characters wide
set string=some text
REM add an excess of pad characters (i.e. more than 16)
REM Note: use quotes if pad characters are spaces
set "string=%string%                  "
REM Show the justified column as a slice starting at position 0, of length 16
echo Prefix %string:~0,16% Suffix

REM right justify text within a column 16 characters wide
set string=some text
REM add an excess of pad characters on the left
set string=                  %string%
REM Show the justified column as a slice ending at the string end, of length 16
echo Prefix %string:~-16% Suffix