我在很短的時間,我期待創造一個非常簡單的批處理腳本,將:簡單批量搜索和替換腳本
1)在同一目錄重命名另一個文件中的字符串(文件名是已知) 實施例:將 「[replace_me_with_path_to_second_file]」 與first_file.txt 「current_working_directory/second_file.txt」
2)打開/執行該文件 「first_file.txt」
3)靠近
由於提前!
我在很短的時間,我期待創造一個非常簡單的批處理腳本,將:簡單批量搜索和替換腳本
1)在同一目錄重命名另一個文件中的字符串(文件名是已知) 實施例:將 「[replace_me_with_path_to_second_file]」 與first_file.txt 「current_working_directory/second_file.txt」
2)打開/執行該文件 「first_file.txt」
3)靠近
由於提前!
如果您對正則表達式感到滿意,這對於sed來說是一項完美的工作。 Sed使用'/'作爲表達式與其替換之間的分界符,所以你應該在文件路徑中轉義任何斜槓。要使用你的例子:
sed -i 's/replace_me_with_path_to_second_file/current_working_directory\/second_file.txt/' first_file.txt
請注意,'cmd'不使用'''來引用...... – Joey
感謝Alberge,我希望發現將不需要的sed,因爲此批處理文件將下載的文件中在Windows環境中使用,以簡化配置的解決方案。但看起來我必須打包它:http://gnuwin32.sourceforge.net/packages/sed.htm
至於其他人,協作問題/答案目錄的整個前提意味着提出問題的人是: 1)無法找到2)準時不足,正在尋求那些在主題方面有更多經驗或知識的人的建議。
批評我說我在問一個問題,因爲我受到時間的限制有點粗魯。
原來,這裏有點重,所以我發現這個有用的和緊湊的VBS腳本sed的依賴關係(DLL)的效仿S/R - 在這裏Is there any sed like utility for cmd.exe
我會重新發布它:
Dim pat, patparts, rxp, inp
pat = WScript.Arguments(0)
patparts = Split(pat,"/")
Set rxp = new RegExp
rxp.Global = True
rxp.Multiline = False
rxp.Pattern = patparts(1)
Do While Not WScript.StdIn.AtEndOfStream
inp = WScript.StdIn.ReadLine()
WScript.Echo rxp.Replace(inp, patparts(2))
Loop
而且我完成的批處理腳本:
@echo off
set full_path=%CD%\file_1.txt
set input_file=file_2.txt
set output_file=file_2.txt
set str_search=FIND_ME
set str_replace=%full_path%
if not exist "%full_path%" (echo this file does not exist...)&goto :eof
cscript //nologo sed.vbs s/%str_search%/"%str_replace%"/ <%input_file% >%output_file%
就像一個魅力: )
開始時的問題»我時間不多«...僅僅是一個代碼短語»我懶得自己尋找解決方案,而讓別人解決我的問題«? – Joey
您的時間不足可能會暫時降低您自己找到優質解決方案的能力。然而,通過暗示你受到時間的限制,你實際上將我們置於相同的限制之下,我認爲這有點不切實際。 –
,甚至不打擾評論以前的評論,或給予答案的功勞,真的使你懷疑你對你的問題的真正興趣。 –