私のコードは次のとおりです。
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
a=%%i を設定
セット b=%%j
)
a = "double a = " と b =";" が必要です しかし、このコードは役に立ちません。
この問題を解決する方法を知っている人はいますか?
私のコードは次のとおりです。
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
a=%%i を設定
セット b=%%j
)
a = "double a = " と b =";" が必要です しかし、このコードは役に立ちません。
この問題を解決する方法を知っている人はいますか?
投稿されたコードはまったく機能しません。
for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (
環境に値が設定されていないため 、に%0
置き換えられます [nothing] に置き換えられますyourbatchfilename
%" %
for /F "tokens=1,2 delims=yourbatchfilename.3i in ("double a = 0.3;") do (
当然のことながら、これは構文エラーです。
@ECHO OFF
SETLOCAL
for /F "tokens=1,2 delims=3.0" %%i in ("double a = 0.3;") do (
set a=%%i
set b=%%j
)
ECHO first way :a=%a%+ b=%b%+
ENDLOCAL
SETLOCAL
SET "astring=double a = 0.3;"
SET "aseparator=0.3"
SET "arotorapes=3.0"
for /F "tokens=1,2 delims=%arotorapes%" %%i in ("double a = 0.3;") do (
SET a=%%i
)
CALL SET b=%%astring:*%aseparator%=%%
ECHO second way :a=%a%+ b=%b%+
ENDLOCAL
SETLOCAL
SET "astring=double a = 0.3;"
SET "aseparator=0.3"
CALL SET b=%%astring:*%aseparator%=%%
SET "c=%b%%aseparator%"
SET "a=%astring%"
:loop
IF DEFINED c SET c=%c:~0,-1%&SET a=%a:~0,-1%&GOTO loop
ECHO third way :a=%a%+ b=%b%+
最初の方法では、文字の順序を変更して、節の=
との間の文字の任意の順序がSINGLE 区切り文字として機能することを示しています。コードは、失敗しないことによって「機能」します。"
delims
2 番目の方法でも、 の設定はa
同じように機能します。これ以上の情報がなければ、これが適切かどうかを判断することはできません。b
ソース文字列内の区切り文字までのすべての文字を [nothing] に具体的に置き換えることによって設定されます。
3 番目の方法では、同じ操作で が確立されb
、次にb
とセパレータが連結されます。元の元の文字列と連結された文字列のコピーの末尾にある文字を体系的に削除します。連結されたバージョンが空になると、元の文字列の区切り文字までの部分を残して、元の文字列から区切り文字と付録を削除したことになります。