替换文本添加文本,但保留文件名

时间:2012-12-05 14:58:54

标签: vbscript batch-file rename

我现在正忙着找2个好脚本。当我认为嘿,我找到了我的剧本,而不是在工作中发生了变化。我需要这个脚本对我来说很重要。我希望有人可以帮助我。

每天下载带有日期的变量文件名。

昨天的示例文件: currency1.20121205

现在我运行一个bat文件:ren C:\blp\bbdl\_csv\* *?.csv

文件名现在是 currency1.20121204.csv

必须要做两件事:

  1. 更改文件内的文字:EUR to USD
  2. 最后添加文字(我找到了一个这样的脚本,但开头不用EUR)
  3. 要添加的文字: EUR CMPN Curncy | 0 | 4 | EUR || Composite(NY)| 1.00000 |

    我在互联网上看到的是,大多数脚本都会更改文件名,但必须保持不变。

1 个答案:

答案 0 :(得分:0)

批处理你可以尝试这样的事情:

setlocal EnableDelayedExpansion

cd C:\blp\bbdl\_csv

for %%f in (*) do (
  set file=%%f
  for /f %%l in (!file!) do (
    set line=%%l
    echo !line:EUR=USD! >> "!file!.csv"
  )
  echo EUR CMPN Curncy^|0^|4^|EUR^|^|Composite(NY)^|1.00000^| >> "!file!.csv"
)

endlocal

但是在VBScript中更容易做到:

Set fso = CreateObject("Scripting.FileSystemObject")

For Each f In fso.GetFolder("C:\blp\bbdl\_csv").Files
  text = f.OpenAsTextStream().ReadAll
  Set f2 = fso.OpenTextFile(f.Path & ".csv", 2, True)
  f2.WriteLine Replace(text, "EUR", "USD")
  f2.WriteLine "EUR CMPN Curncy|0|4|EUR||Composite(NY)|1.00000|"
  f2.Close
Next

两个代码片段都脱离了我的头顶,所以没有经过测试。

相关问题