|
カテゴリ:シェル
バッチで文字列の長さを算出処理を書いてみた。
CALL :LEN %TARGET% とかで呼び出すと、%LENTGTH%に長さがセットされる。
お気に入りの記事を「いいね!」で応援しよう
[シェル] カテゴリの最新記事
ゼロサプレス、ゼロ桁の切り出し、文字列の長さについては、これでどうでしょう。
@echo off setlocal enabledelayedexpansion set _S=000102030 if not "%~1"=="" set _S=%~1 set _D= set _Z= set _L= for /L %%L in (0,1,20) do ( set _L=!_S:~%%L! if "!_D!"=="" if not "!_L:~0,1!"=="0" set /A _D=!_L! if "!_L!"=="" set /A _L=%%L& call set _Z=%%_S:!_D!=%%& goto :L ) :L echo "!_S!" # String echo "!_D!" # Decimal No. echo "!_Z!" # Zero digits echo "!_L!" # Length endlocal (2016/06/10 08:54:39 PM)
ゼロサプレス、ゼロ桁の切り出し、文字列の長さについては、これでどうでしょう。
- 入力 String が "0" の場合の問題を改善しました。 - 環境変数の使い方を、応用しやすく効率的な方法に改善しました。 @echo off setlocal enabledelayedexpansion set _S=000102030 if not "%~1"=="" set _S=%~1 set _D=!_S! set _Z=!_S! set /A _L=0 for /L %%L in (0,1,20) do ( if not "!_D!"=="" ( if !_L! EQU 0 if not "!_D:~0,1!"=="0" set /A _L=!_D! set _D=!_D:~1! ) else ( set /A _D=!_L! call set _Z=%%_Z:!_D!=%% set /A _L=%%L goto :L ) ) :L echo "!_S!" # String echo "!_D!" # Decimal No. echo "!_Z!" # Zero digits echo "!_L!" # Length endlocal (2016/06/11 03:22:11 PM) |