這個問題已經在stackoverflow上問了很多,但我似乎無法使它工作。任何提示讚賞。下面是需要被刪除的文本文件(擴展名爲.mpl)含有違規內容:bat文件替換文本文件中的字符串
plotsetup('ps', 'plotoutput = "plotfile.eps"', 'plotoptions' = "color=rgb,landscape,noborder");
print(PLOT3D(MESH(Array(1..60, 1..60, 1..3, [[[.85840734641021,0.,-0.],
[HFloat(undefined),HFloat(undefined),HFloat(undefined)],[.857971665313419,.0917163905694189,-.16720239349226],
... more like that ...
[.858407346410207,-3.25992468340355e-015,5.96532373555817e-015]]], datatype = float[8], order = C_order)),SHADING(ZHUE),STYLE(PATCHNOGRID),TRANSPARENCY(.3),LIGHTMODEL(LIGHT_4),ORIENTATION(35.,135.),SCALING(CONSTRAINED),AXESSTYLE(NORMAL)));
我想刪除的每個實例:
[HFloat(undefined),HFloat(undefined),HFloat(undefined)],
,並有成千上萬這樣的情況下!注意:方括號和逗號將被刪除。沒有空間,所以我有頁面和頁面:
[HFloat(undefined),HFloat(undefined),HFloat(undefined)],
[HFloat(undefined),HFloat(undefined),HFloat(undefined)],
[HFloat(undefined),HFloat(undefined),HFloat(undefined)],
我不會在這裏列出所有失敗的嘗試。下面是我來最接近:
@echo off
SetLocal
cd /d %~dp0
if exist testCleaned.mpl del testCleaned.mpl
SetLocal EnableDelayedExpansion
Set OldString=[HFloat(undefined),HFloat(undefined),HFloat(undefined)],
Set NewString=
pause
FOR /F "tokens=* delims= " %%I IN (test.mpl) DO (
set str=%%I
set str=!str:OldString=NewString!
echo !str! >> testCleaned.mpl
endlocal
)
EndLocal
上述被串在一起,因爲它是,從代碼片段在網上找到,尤其是在計算器,例如Problem with search and replace batch file
它能做什麼是產生一個截斷的文件,內容如下:
plotsetup('ps', 'plotoutput = "plotfile.eps"', 'plotoptions' = "color=rgb,landscape,noborder");
!str!
請不要猶豫,要求澄清。道歉,如果你覺得這個問題已經得到解答。我非常感謝你是否會爲我複製粘貼相關代碼,因爲我已經嘗試了幾個小時。
獎勵:這個自動命名可以工作嗎? 「%%~nICleaned.mpl
」
您是否嘗試過其他工具而不是DOS腳本? – kev 2011-12-21 11:35:32
我建議使用C#腳本:http://www.csscript.net/ – Hybrid 2011-12-21 11:55:31
kev,不,我沒有嘗試過其他腳本。我需要修改的文件的內容是用Maple(Maplesoft)創建的混亂的postscript文件,我試圖用Maple的StringTools修復它,但它適用於小文件,但它不適用於大文件(對於某些原因)。經過幾個小時的調試失敗後,我認爲我會用谷歌的東西,和DOS腳本是最常見的命中之一。如果不涉及數小時的新軟件安裝,我很樂意嘗試其他方法。如果有幫助,我在Ubuntu上有一個完全可用的python系統。謝謝! – PatrickT 2011-12-21 14:54:45