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