2013-06-19 78 views
3

我發現有點難以得到解決我的問題。我想格式化從文件A中讀取的字符串/行,然後遞歸地將其保存到文件B中。批處理 - 命令格式化字符串

文件A.dlg的內容在路徑「C:\ Test文件夾\阿卡什\ form1中\ A.dlg:

[FFF][3][PLACE Holder][LOCATION][DESCRIPTION][TABS][FILE1.xml,FILE2.xml][FILE3.xml][FILE4.xml][][][1][Arial] 

格式化線後,輸出應該被寫入到文件中( TEMP.TXT)

[FFF][3][PLACE Holder][LOCATION][DESCRIPTION][TABS][Akash\form1\FILE1.xml,Akash\form1\FILE2.xml][Akash\form1\FILE3.xml][Akash\form1\FILE4.xml][][][1][Arial] 

我現在命令遞歸遍歷所有文件夾中運行,並找到.DLG擴展名的文件,並讀取它的內容是

for /r "..\Akash\" %%F in (*.dlg) do (
for /f "tokens=*" %%a in ('type "%%F"') do @echo %%a[] >> temp.txt 
) 

但這只是複製行不格式化它。你們能不能幫我

+0

您的文件名與FILE?.xml不是常量,是不一樣的,是嗎? – foxidrive

+0

是的文件名會改變它的不恆定。 – Varuna

+0

你想從'c:\ test folder \ one \ two \ three \ four \ a.dlg'中創建兩個級別的文件夾或所有的子文件夾,例如'one \ two \ three \ four \ file.xml' – foxidrive

回答

2

建議與GNU sed

sed "s/FILE/Akash\\form1\\FILE/g" A.dlg 
1

使用變量替換?

C:\temp>set test=[FFF][3][PLACE Holder][LOCATION][DESCRIPTION][TABS][FILE1.xml,F 
ILE2.xml][FILE3.xml][FILE4.xml][][][1][Arial] 

C:\temp>echo %test:FILE=Akash\form1\FILE% 
[FFF][3][PLACE Holder][LOCATION][DESCRIPTION][TABS][Akash\form1\FILE1.xml,Aka 
form1\FILE2.xml][Akash\form1\FILE3.xml][Akash\form1\FILE4.xml][][][1][Arial] 
+1

您應該將'FILE'添加到替換字符串中。 – Endoro

+0

@Endoro感謝您的支持 –

+0

%test:FILE = Akash \ form1 \ FILE%搜索「FILE」的字符串,然後使用「Akash \ form1 \ file」對其進行修改。原諒我,如果這是一個愚蠢的問題:) – Varuna