0

私のコードは次のとおりです。

for /F "tokens=1,2 delims=%0.3%" %%i in ("double a = 0.3;") do (

a=%%i を設定

セット b=%%j

)

a = "double a = " と b =";" が必要です しかし、このコードは役に立ちません。

この問題を解決する方法を知っている人はいますか?

4

1 に答える 1

1

投稿されたコードはまったく機能しません。

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とセパレータが連結されます。元の元の文字列と連結された文字列のコピーの末尾にある文字を体系的に削除します。連結されたバージョンが空になると、元の文字列の区切り文字までの部分を残して、元の文字列から区切り文字と付録を削除したことになります。

于 2013-04-13T04:41:20.393 に答える