2013-01-31 32 views
0

我知道這個問題被問了很多次,但我沒有得到我正在搜索的答案。 我想用windows .bat文件替換一個模式。批量命令替換文件中的文本

我知道如何用Y代替X

但我想用C:\Programfiles\Install\來代替installPath

在這裏,我面臨的問題是新值字符串包含\即特殊字符。

請讓我知道我可以取代這個。

+0

感謝,但沒有人幫助我。讓我解釋。我有一個屬性文件,我有一個名爲installPath的屬性,並從命令行運行.bat文件,我接受C:\ Programfiles \ Install \作爲來自用戶的輸入,然後在我的屬性文件中,我必須將installPath替換爲用戶輸入路徑。此處提供的所有解決方案都適用於硬編碼值,而不適用於用戶在運行時輸入的值。 –

回答

1

這對我工作得很好

set p=installPath 
set p=%p:installPath=C:\Programfiles\Install\% 
echo %p% 
1

Followinf腳本就會發現該文件中的字符串,並用另一個字符串替換。 EX。 「安裝路徑」將被替換爲「C:\ PROGRAMFILES \安裝」

@echo off 
for /f "usebackq tokens=*" %%a in ("test.txt") do call :Replace "%%a" 
del "test.txt" 
rename "newfile.txt" test.txt 

exit /b 

:Replace 
set str1=%~1 
set str1=%str1:installPath=C:\Programfiles\Install% 
echo.%str1%>>"newfile.txt" 

exit /b 
0

這應該工作...順便說一下,這是我的這個網站上的第一篇文章。 以下用途延遲擴展,讓你有兩個不同的「變量符號」一起玩:

setlocal enabledelayedexpansion 
    set iPath=installPath 
    set input=C:\Programfiles\Install\ 
    set p=!iPath:installPath=%input%! 

希望這有助於大家的答案