2013-04-13 66 views
0

我的代碼如下:可以選擇在For/f中定義一個字符串嗎?

爲/ F 「令牌= 1,2 delims =%0.3%」 %% i的( 「雙A = 0.3;」)做(

集=% %I

集b = %%Ĵ

我想要= 「雙一=」 和b = 「;」但是這個代碼不能幫助。

有誰知道如何解決這個問題?

回答

1

您發佈的代碼根本不起作用。

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

%0將由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%+ 

在第一方法中,我已經改變了的字符序列,以deomstrate的任一個delims條款的="之間的字符的任何序列作爲SINGLE分隔符。代碼「無法正常工作」。

在第二種方法中,a的設置以相同的方式工作。沒有進一步的信息,實在無法分辨這是否足夠。 b通過具體替換所有字符源字符串在至多且包括與[無]

在第三方法中的分離器設置中,相同的操作建立b,然後b和隔板是級聯。系統地刪除原始原始字符串和連接字符串副本末尾的字符。當連接版本變空時,您已刪除原始分隔符和附錄,將原始字符串的部分留給分隔符。

+0

太棒了!非常感謝! – HeyMan

+0

+1,謝謝彼得。我不知道如何,但我完全錯過了DELIMS選項中的'%'。我的測試沒有他們,所以當然它「工作」不正確,因爲我描述不清。我很高興你不只是「相信簽名」:-)我刪除了我的不正確答案。 – dbenham

相關問題