2012-12-05 43 views
-1

我現在正忙於2個星期忙於找到一個好的腳本。當我想到嘿,我找到了我的劇本,而不是在工作中改變的東西。我需要這個腳本對我很重要。我希望有人能幫助我。替換文本添加文本,但保留文件名

每天都有一個變量文件名與日期一起下載。昨日

示例文件:currency1.20121205

現在我運行一個批處理文件:ren C:\blp\bbdl\_csv\* *?.csv

文件名是現在currency1.20121204.csv

兩件事情必須發生:

  1. 更改文件內的文本:EUR到USD
  2. 末添加文本(我已經找到了這個劇本,但不要對歐元開始工作)

文本添加:EUR CMPN Curncy | 0 | 4 | EUR | |綜合(紐約州)| 1.00000 |

我在互聯網上看到的是,大多數腳本都會改​​變文件名,但這必須保持不變。

回答

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 

兩個代碼片段從我的頭頂,所以未經測試。

+0

我可以使用VBScript,我已經用腳本對它進行了測試,但只有1個文件需要被編輯,而不是4個文件。在所有4個文件中添加該行,並將歐元兌美元更改。 currency1.????????.csv必須進行編輯。上 ??有日期,那是可變的。等待您的回覆,謝謝 – user1863225

+0

然後,您需要定義*哪個*文件必須被編輯。什麼區別這個文件與其他文件?它只是文件名的日期部分?還要別的嗎? –

+0

Ansgar,我如何定義該文件。我不是一個可以閱讀它的腳本,但我不知道如何去做。也許我會嘗試編輯這個文本= f.OpenAsTextStream()。ReadAll – user1863225