将mmDDyyyy添加到文件名

时间:2015-05-26 19:35:24

标签: powershell

我如何追加" _05262015"在powershell中的文件名结尾?例如,我打开文件,向其写入数据,然后保存。

#Opening
$extractFile = @"
\\C:\Test\book1.csv
"@
#Saving
$DataSet.Tables[0] | Export-Csv $extractFile -NoTypeInformation

4 个答案:

答案 0 :(得分:3)

这是我的方式:

$extractFile = '\\C:\Test\book1_{0}.csv' -F (Get-Date).ToString('MMddyyyy')

答案 1 :(得分:2)

$extractFile = '\\C:\Test\book1.csv'
$suffix = Get-Date -Format '_MMddyyyy'
$newFile = $extractFile -replace '\.([^.]*)$',"$suffix.`$1"
Move-Item $extractFile -Destination $newFile

-replace运算符执行regular expression替换,其工作方式如下:

第一个参数是我们要替换的匹配模式:

'\.([^.]*)$'
  ^   ^   ^
  |   |   |
 Dot  |   |
      |  End of string
     Capture group with 0 or more non-Dot characters (file extension)

第二个参数是我们想要用以下内容替换匹配模式的字符串:

"$suffix.`$1"
    ^      ^
    |      |
    |     $1 refers to that first capture group from the match pattern, escaped to avoid string expansion
   PowerShell parser expands this to "__05262015" because we use double-quotes

$newFile的价值变为\\C:\Test\book1_05262015.csv(至少今天)

最后,我们使用Move-Item和完整的新路径来有效地重命名文件

答案 2 :(得分:1)

如果你想操纵一个现有的文件名字符串,你可以使用IO.Path类的方法来做(例如)

$extractFile = 'C:\Test\book1.csv'

$date = Get-Date -f 'MMddyyyy'
$dirname  = [IO.Path]::GetDirectoryName($extractFile)
$filename = [IO.Path]::GetFileNameWithoutExtension($extractFile) +
            "_$date" + [IO.Path]::GetExtension($extractFile)

$extractFile = Join-Path $dirname $filename

答案 3 :(得分:-2)

$newFileName = $extractFile + "_05262015"
$DataSet.Tables[0] | Export-Csv $newFileName -NoTypeInformation