我有稱爲NonProd.txt每行包含一個服務器名稱的文本文件,即如何在FOR循環中替換字符串中的字符?
c123abc
c234abc
c345abc
cfcd123
etc.
我也有一個批處理文件(以下給出),其讀取從文本文件中的每一行,提取3個字符從每一行,並將該值保存在變量中。然後我想用變量替換mypath
變量中的XXX
字符。
下面的代碼用於讀取文本文件,提取服務器名稱並提取它需要的3個字符,但是我無法使字符串替換工作,即用取出的3個字符替換XXX
中的mypath
。
任何人都可以建議嗎?
@echo off
SET mypath=C:\XXX\SYS\exe\folder\folder\
FOR /F %%X IN (NonProd.txt) DO (
echo ServerName = %%X
Call Set "SID=%%X"
Call Set "SID=%%SID:~1,3%%"
Call Echo SID = %%SID%%
ECHO mypath = %mypath%
CALL set mypath=%mypath:XXX=%SID%%
ECHO newpath = %mypath%
ECHO.
)
@echo Completed.
pause
您需要DelayedExpansion:'呼叫建立mypath中= %% mypath中:!XXX = SID %%'和'也叫ECHO NEWPATH = %% mypath中%%' – Aacini
這也可以不DelayedExpansion(未經測試)工作= 'CALL CALL set mypath = %%%% mypath:XXX = %% SID %%%%%%'' – Aacini