2013-06-19 29 views
0
$xml = [xml](Get-Content C:\temp\STA\*.dtsConfig) 
$xml.SelectNodes('//ConfiguredValue')|%{$_.'#text'=($_.'#text' -replace '_\d+',[datetime]::Today.ToString('_MMddyyy'))} 
$xml.SelectNodes('//ConfiguredValue')|%{$_.'#text'} 
xml.Save('C:\temp\STA\*.dtsConfig') 

從第3步我要檢查標籤在ConfiguredValue在dtsConfig命名PackageDependencies_somedate(20110528)代替標籤中* dtsConfig文件,我想改變PackageDependencies_currentdate(20130619), 有改變一些日期設置爲當前日期和保存文件,從PowerShell的

http://i.stack.imgur.com/EHH6h.jpg

+1

你有什麼問題?此代碼不起作用嗎? –

+0

此代碼適用於硬編碼文件,這意味着如果我把somename.dtsConfig,然後它的工作原理,但如果有10個文件有擴展名dtsConfig,我想在所有10個文件中進行更改,然後文件做了更改,但無法保存在該路徑,我需要說的任何沒有dtsConfig文件的變化應該做的,我的方式是計數文件使用計數器,需要說在這裏仍然存在問題仍然存在 – Hemu

回答

0

您的代碼應該像下面:

ls C:\temp\STA\*.dtsConfig | foreach { 
    $file = $_.FullName; 
    $xml = [xml](Get-Content $file) 
    $todayStr = [datetime]::Today.ToString('_MMddyyy') 
    @($xml.SelectNodes('//ConfiguredValue')) | %{ 
     $_.'#text'=($_.'#text' -replace '_\d+',$todayStr) 
    } 
    $xml.Save($file) 
} 
+0

這不是從powershell_ise.exe編輯器 – Hemu

+0

你有什麼錯誤?你可以調試這個語句。 –

+0

第4行出現錯誤,表達式或語句中的意外標記'datetime'。 在線:4 char:87 表達式或語句中的意外標記':: Today.ToString'。 在行:4字符:97 意外標記「(」在表達式或語句 在行:4字符:113 在表達式或語句 在行 意外標記「_MMddyyy」:4字符:114 在語句塊中缺少結束'}' 在線:4 char:125 – Hemu