1
我正在嘗試編寫一個簡單的腳本,它允許我檢查一個目錄,並找到任何匹配的文件名。 一旦找到匹配,我只想將curent datetime追加到文件名的前面。powershell v2 - 在一個目錄中找到一個文件並重命名它
這聽起來很容易,但我不能完全弄清楚
到目前爲止,我已經得到了
$directory = "c:\directoryName\"
$filename = "filename.log"
$d = Get-Date -format "yyyyMMddHHmm"
get-childitem -Path $cfg_logDirectory | foreach-object
{
if ($_.name -eq $cfg_fileName)
{
$fname = $_.name
Rename-Item -NewName $d."_".$fname
}
}
但是當我運行這個(ISE中至少),我得到一個窗口出現,詢問我要
「Cmdlet的的ForEach-對象在命令管道位置2 - 提供值以下參數 :進程[0]」
這是要走的路嗎,還是有更好的方法來做到這一點?
這就是我以爲我很聰明。 。 。歡呼,因爲它擺脫了過程[]窗口。重命名項目部分是否正確,因爲目前它不重命名該文件。 – IGGt 2014-12-19 11:14:01
您的NewName字符串格式不正確。試試'Rename-Item -NewName「$ d_ $ fname」'。 Powershell中的字符串連接是'+',而不是''',但是您甚至不需要它,因爲您可以只評估字符串中的變量。 – 2014-12-19 20:50:41