2010-11-05 15 views
3

En utilisant MS-DOS 8.0, quelle est la meilleure façon de déterminer la longueur d'une chaîne?MS-DOS 8.0: déterminer la longueur de chaîne?

Je regardais par l'espérance d'ordinateur (http://www.computerhope.com/msdos.htm), mais aucune commande m'a sauté aux yeux ...

Y at-il une commande interne ou une fonction doit être construit pour répondre à cela?

Merci beaucoup.

+0

Je ne pense pas que cela répond spécifiquement à votre question (voir l'excellente réponse de Preet Sangha), mais pour d'autres tâches de manipulation de chaînes sous DOS, vous le trouverez probablement sur ce site: http://www.dostips.com/ DtTipsStringOperations.php –

Répondre

3

De here j'ai eu et par exemple, ce qui est nettoyé une 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 

alt text

+4

Excellent exemple de pourquoi nous ne devrions jamais écrire en DOS. :-) –

+0

@Sam Semble golfé :) –

1

J'utilise régulièrement la méthode suivante:

@echo off 
    set str=This is a line of text 

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

    echo %len% 
2

Voici une autre option. Passez la chaîne comme un paramter comme ceci:

LEN "this is a long string" 

Voici le code:

@echo off 

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

    echo %len% 

Copiez et collez le code dans le Bloc-notes et enregistrez-le LEN.BAT. REMARQUE: L'arrêt complet suivant l'instruction ECHO est essentiel si une chaîne NUL est entrée. Le -2 est requis car ECHO ajoute automatiquement un CR & LF à la fin de chaque ligne.