Powershell 将mmddyyy添加到文件名
如何在powershell中的文件名末尾附加“_05262015”?例如,我打开文件,将数据写入其中,然后保存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
#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中指定的目标中