ほとんどの言語では非常に簡単に問題が解決されていますが、バッチで理解できないようです。私は文字列の最後の文字を抽出したい。文字列の最後の文字が、その後0であれば擬似コード..英語で変数から文字列の最後の文字を取得
if var1.substring(var1.length, -1) = "0"
do something
で... ...
ほとんどの言語では非常に簡単に問題が解決されていますが、バッチで理解できないようです。私は文字列の最後の文字を抽出したい。文字列の最後の文字が、その後0であれば擬似コード..英語で変数から文字列の最後の文字を取得
if var1.substring(var1.length, -1) = "0"
do something
で... ...
set var=%var:~-1%
はdoccoのプロンプトからSET /?
を参照してください。
@ECHO OFF
SETLOCAL
SET var=abcd
SET var2=%var:~-1%
CALL :show "-1"
SET var2=%var:~-2%
CALL :show "-2"
SET var2=%var:~-3%
CALL :show "-3"
SET var2=%var:~1%
CALL :show "1"
SET var2=%var:~2%
CALL :show "2"
SET var2=%var:~3%
CALL :show "3"
SET var2=%var:~0,1%
CALL :show "0,1"
SET var2=%var:~0,2%
CALL :show "0,2"
SET var2=%var:~0,3%
CALL :show "0,3"
SET var2=%var:~0,-1%
CALL :show "0,-1"
SET var2=%var:~0,-2%
CALL :show "0,-2"
SET var2=%var:~0,-3%
CALL :show "0,-3"
SET var2=%var:~1,-1%
CALL :show "1,-1"
SET var2=%var:~1,-2%
CALL :show "1,-2"
SET var2=%var:~1,-3%
CALL :show "1,-3"
GOTO :eof
:show
echo Test with "var:~%~1" : var=%var% var2=%var2%
GOTO :eof
結果:
Test with "var:~-1" : var=abcd var2=d
Test with "var:~-2" : var=abcd var2=cd
Test with "var:~-3" : var=abcd var2=bcd
Test with "var:~1" : var=abcd var2=bcd
Test with "var:~2" : var=abcd var2=cd
Test with "var:~3" : var=abcd var2=d
Test with "var:~0,1" : var=abcd var2=a
Test with "var:~0,2" : var=abcd var2=ab
Test with "var:~0,3" : var=abcd var2=abc
Test with "var:~0,-1" : var=abcd var2=abc
Test with "var:~0,-2" : var=abcd var2=ab
Test with "var:~0,-3" : var=abcd var2=a
Test with "var:~1,-1" : var=abcd var2=bc
Test with "var:~1,-2" : var=abcd var2=b
Test with "var:~1,-3" : var=abcd var2=
あなたIF
声明のために、あなたが本当にの多くを別々に考える必要があるので、
IF "%var:~-1%"=="0" (dosomething) else (dosomethingelse)
バッチは、Cスタイルのロジックを使用していないしてみてくださいそれ。 http://www.dostips.com/DtTipsStringManipulation.php#Snippets.RightString
%str:~-1%
あなたの最後の文字を取得します:あなたが望むもののように見える右回転文字列を言っ
。
ヘルプについては、「help set」と入力してください。 – Endoro