2013-12-14 47 views
0
01: SETLOCAL EnableExtensions EnableDelayedExpansion 
02: ... 
03: IF /i "%tValueType%" EQU "string" (
04: SET "vValueBefore=%1" 
05: SET "vValueAfter=%2" 
06: 
07: FOR %%p IN (equ neq sub) DO (
08: IF /i "!tOperator!" EQU "%%p" (
09:  SET "tOperatorValid=valid" 
10:  IF /i "!tOperator!" EQU "sub" (
11:  SET "tConditions="!vValueAfter:!vValueBefore!=!" NEQ "!vValueAfter!"" 
12: ) ELSE (
13:  SET "tConditions="!vValueBefore!" %tOperator% "!vValueAfter!"" 
14: ) 
15: ) 
16: ) 
17: ) 
18: ... 

第11行:我想將字符串中的子字符串替換爲「」(cut substring),但出錯。我想在字符串中替換子字符串

+0

請你進行標記使用的語言改變。 1)更多的曝光。 2)所以其他人知道你在用什麼語言。 3)對於某些語言,您將得到語法高亮顯示:) –

+0

我使用批處理腳本:) – user3101466

+0

您可以編輯您的問題,並在底部添加標記 –

回答

1
11:  for /F "delims=" %%v in ("!vValueBefore!") do SET "tConditions="!vValueAfter:%%~v=!" NEQ "!vValueAfter!"" 
+0

謝謝我的代碼 FOR/f「delims =」%% v IN(「!vValueBefore!」)DO( SET「tConditions =」!vValueAfter: %%〜v =!「NEQ」!vValueAfter!「」 ) – user3101466

+0

+1,但是,如果vValueBefore可能以任何字符開頭,包括';',那麼應該使用'for/f delims^=^eol^= %% v ...' – dbenham

2
SET "tConditions="!vValueAfter:%vValueBefore%=!" NEQ "!vValueAfter!"" 

應該工作,因爲vValueBefore未在循環

+0

第04行:我在if中設置了vValueBefore。我無法獲得%vValueBefore%的值。如果第11行中的echo%vValueBefore% - >「echo off」 – user3101466