MS-DOS 8.0: Determine String Length?

Started by Ana21, November 19, 2020, 03:03:29 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ana21

Using MS-DOS 8.0, what is the best way to determine the length of a string?

I looked through Computer Hope (http://www.computerhope.com/msdos.htm), but no commands jumped out at me...

Is there a built in command or must a function be built to address this?

Thanks a ton.

Sidewinder

This might help:


@echo off
setlocal
set /p var=Enter String Value:

:length
  if defined var (set var=%var:~1%& set /a length+=1 & goto length)
  echo String length is: %length% characters


Quirk Alert: %& must be concatenated in "if defined" line

MS-DOS 8? Wow!  8)

The true sign of intelligence is not knowledge but imagination.

-- Albert Einstein

patio

" Anyone who goes to a psychiatrist should have his head examined. "

clarkegriffinx

Quote from: Ana21 on November 19, 2020, 03:03:29 AM
Using MS-DOS 8.0, what is the best way to determine the length of a string?

I looked through Computer Hope (http://www.computerhope.com/msdos.htm), but no commands jumped out at me...

Is there a built in command or must a function be built to address this?
McDVOICE MyBKExperience Liteblue

Thanks a ton


I got and example and this is it cleaned up a litte

@echo off
setlocal
set #=%1
set length=0
:loop
if defined # (set #=%#:~1%&set /A length += 1&goto loop)
echo %1 is %length% characters long!
endlocal


Here's another option. Pass the string as a paramter like this:

   LEN "this is a long string"
Here's the code:

   @echo off

   echo.%~1>len
   for %%a in (len) do set /a len=%%~za -2

   echo %len%

Copy and paste the code into Notepad and save it as LEN.BAT.

NOTE: The fullstop following the ECHO statement is vital should a NUL string be entered. The -2 is required because ECHO automatically adds a CR & LF at the end of each line.