Powershell 将mmddyyy添加到文件名

Powershell 将mmddyyy添加到文件名,powershell,Powershell,如何在powershell中的文件名末尾附加“_05262015”?例如,我打开文件,将数据写入其中,然后保存 #Opening $extractFile = @" \\C:\Test\book1.csv "@ #Saving $DataSet.Tables[0] | Export-Csv $extractFile -NoTypeInformation 以下是我的做法: $extractFile = '\\C:\Test\book1_{0}.csv' -F (Get-Date).ToStrin

如何在powershell中的文件名末尾附加“_05262015”?例如,我打开文件,将数据写入其中,然后保存

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

以下是我的做法:

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

以下是我的做法:

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

操作员进行更换,其工作方式如下:

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

'\.([^.]*)$'
  ^   ^   ^
  |   |   |
 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\u 05262015.csv
(至少在今天)

最后,我们使用带有全新路径的
移动项
来有效地重命名文件

操作员进行更换,其工作方式如下:

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

'\.([^.]*)$'
  ^   ^   ^
  |   |   |
 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\u 05262015.csv
(至少在今天)


最后,我们使用带有完整新路径的
移动项
来有效地重命名文件

如果您想要操作现有的文件名字符串,您可以(例如)使用类的方法来执行此操作:

$extractFile='C:\Test\book1.csv'
$date=获取日期-f'MMddyyyy'
$dirname=[IO.Path]::GetDirectoryName($extractFile)
$filename=[IO.Path]::GetFileNameWithoutExtension($extractFile)+
“$date”+[IO.Path]::GetExtension($extractFile)
$extractFile=连接路径$dirname$filename

如果要操作现有的文件名字符串,可以(例如)使用类的方法:

$extractFile='C:\Test\book1.csv'
$date=获取日期-f'MMddyyyy'
$dirname=[IO.Path]::GetDirectoryName($extractFile)
$filename=[IO.Path]::GetFileNameWithoutExtension($extractFile)+
“$date”+[IO.Path]::GetExtension($extractFile)
$extractFile=连接路径$dirname$filename


您是否查看了
重命名项目
获取日期
?也许您需要使用
$extractFile
进行字符串操作?您注释的
#Opening
部分不会打开该文件。它只定义一个带有文件名的变量(作为多行字符串)。文件名来自哪里?您的代码中是否有它(因此您可以简单地以不同的方式定义字符串),还是它来自其他地方(因此您必须修改现有字符串)?您是否查看了
重命名项
获取日期
?也许您需要使用
$extractFile
进行字符串操作?您注释的
#Opening
部分不会打开该文件。它只定义一个带有文件名的变量(作为多行字符串)。文件名来自哪里?您的代码中是否有它(因此您可以简单地以不同的方式定义字符串),还是它来自其他地方(因此您必须修改现有字符串)?而这在技术上确实回答了字面上提出的问题。我觉得OP真的希望在扩展之前添加代码。一般来说,如果答案中包含对代码意图的解释,以及在不引入其他代码的情况下解决问题的原因,那么答案会更有帮助。(这篇文章至少有一个用户标记了它,大概是因为他们认为应该删除一个没有解释的答案。礼貌ping@humble.rumble,他可能不是标记者。)我否决了它,因为我觉得它实际上没有解决OP存在的问题。我认为我的第一个评论已经清楚地说明了这一点。虽然这在技术上确实回答了这个问题,因为它确实被问到了。我觉得OP真的希望在扩展之前添加代码。一般来说,如果答案中包含对代码意图的解释,以及在不引入其他代码的情况下解决问题的原因,那么答案会更有帮助。(这篇文章至少有一个用户标记了它,大概是因为他们认为应该删除一个没有解释的答案。礼貌ping@humble.rumble,他可能不是标记者。)我否决了它,因为我觉得它实际上没有解决OP存在的问题。我想我的第一条评论已经清楚地说明了这一点。我可以保留原始文件名,并执行类似的操作:$savefilename=$extractFile-Format(Get Date)。ToString('mmddyyy')@MasterOfStupidQuestions No。这不是在文件名的末尾追加日期吗?@MasterOfStupidQuestions No。即使它这样做了,您不需要文件名
book1.csv\u 05262015
。相信我。我可以保留原始文件名并执行以下操作:$savefilename=$extractFile-Format(Get Date)。ToString('mmddyyy')@MasterOfStupidQuestions No。这不是在文件名末尾追加日期吗?@MasterOfStupidQuestions No。即使这样做了,您也不需要文件名
book1.csv\u 05262015
。相信我。这将保存在我的当前目录(ps1脚本所在的目录)中,而不是保存在$extractFile中指定的目标中。这将保存在我的当前目录(ps1脚本所在的目录)中,而不是保存在$extractFile中指定的目标中