Batch - 格式化字符串的命令

时间:2013-06-19 19:14:30

标签: batch-file batch-processing

我发现解决问题有点困难。我想格式化一个从文件A中读取的字符串/行,然后以递归方式将其保存到文件B中。

路径中文件A.dlg的内容" c:\ test文件夹\ Akash \ 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]

My Current Command以递归方式遍历所有文件夹并查找扩展名为.dlg的文件并读取内容

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

但这只是复制该行不格式化它。你能帮助我吗

2 个答案:

答案 0 :(得分:2)

建议使用GNU sed

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

答案 1 :(得分: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]