Powershell 在文件名中包含当前日期
如何在文件的基本名称之后包含日期? 执行下面的PowerShell脚本时,它会将csv从网站下载到目标文件夹:Powershell 在文件名中包含当前日期,powershell,Powershell,如何在文件的基本名称之后包含日期? 执行下面的PowerShell脚本时,它会将csv从网站下载到目标文件夹: $client = new-object System.Net.WebClient $client.DownloadFile("https://files.docparser.com/d/jvmnvggcccfxz","C:\test\IV_1.csv") 输出文件名为IV_1.csv 如何将日期添加到文件名?例如,文件名,IV_1-04-04-2020.csv插入如下日期: $cl
$client = new-object System.Net.WebClient
$client.DownloadFile("https://files.docparser.com/d/jvmnvggcccfxz","C:\test\IV_1.csv")
输出文件名为IV_1.csv
如何将日期添加到文件名?例如,文件名,
IV_1-04-04-2020.csv
插入如下日期:
$client = new-object System.Net.WebClient
$client.DownloadFile("https://files.docparser.com/d/jvmnvggcccfxz","C:\test\IV_1-$((Get-Date).ToString('dd-MM-yyy')).csv")
插入如下日期:
$client = new-object System.Net.WebClient
$client.DownloadFile("https://files.docparser.com/d/jvmnvggcccfxz","C:\test\IV_1-$((Get-Date).ToString('dd-MM-yyy')).csv")
您可以使用
ToString(“dd-MM-yyyy”)
从中获取当前日期字符串,使用and提取文件名和扩展名,然后将所有部分与文件一起格式化
输出:
IV_1-05-04-2020.csv
C:\test\IV_1-05-04-2020.csv
但是,如果处理完整路径,则GetFileNameWithoutExtension
将不会保留整个路径,而只保留文件名。您可以使用和来提取完整路径,而无需扩展名。这将占用最后一个
字符之前的所有内容
$file = "C:\test\IV_1.csv"
$dateString = (Get-Date).ToString("dd-MM-yyyy")
$path = $file.Substring(0, $file.LastIndexOf('.'))
$extension = [System.IO.Path]::GetExtension($file)
"{0}-{1}{2}" -f $path, $dateString, $extension
输出:
IV_1-05-04-2020.csv
C:\test\IV_1-05-04-2020.csv
我们还可以将上述内容包装成一个函数:
function Format-FilePathWithDate {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$FilePath,
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$DateFormat
)
$dateString = (Get-Date).ToString($DateFormat)
$path = $FilePath.Substring(0, $FilePath.LastIndexOf('.'))
$extension = [System.IO.Path]::GetExtension($FilePath)
"{0}-{1}{2}" -f $path, $dateString, $extension
}
然后在您的场景中专门使用此功能:
$client = new-object System.Net.WebClient
$file = Format-FilePathWithDate -FilePath "C:\test\IV_1.csv" -DateFormat "dd-MM-yyyy"
$client.DownloadFile("https://files.docparser.com/d/jvmnvggcccfxz", $file)
您可以使用
ToString(“dd-MM-yyyy”)
从中获取当前日期字符串,使用and提取文件名和扩展名,然后将所有部分与文件一起格式化
输出:
IV_1-05-04-2020.csv
C:\test\IV_1-05-04-2020.csv
但是,如果处理完整路径,则GetFileNameWithoutExtension
将不会保留整个路径,而只保留文件名。您可以使用和来提取完整路径,而无需扩展名。这将占用最后一个
字符之前的所有内容
$file = "C:\test\IV_1.csv"
$dateString = (Get-Date).ToString("dd-MM-yyyy")
$path = $file.Substring(0, $file.LastIndexOf('.'))
$extension = [System.IO.Path]::GetExtension($file)
"{0}-{1}{2}" -f $path, $dateString, $extension
输出:
IV_1-05-04-2020.csv
C:\test\IV_1-05-04-2020.csv
我们还可以将上述内容包装成一个函数:
function Format-FilePathWithDate {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$FilePath,
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$DateFormat
)
$dateString = (Get-Date).ToString($DateFormat)
$path = $FilePath.Substring(0, $FilePath.LastIndexOf('.'))
$extension = [System.IO.Path]::GetExtension($FilePath)
"{0}-{1}{2}" -f $path, $dateString, $extension
}
然后在您的场景中专门使用此功能:
$client = new-object System.Net.WebClient
$file = Format-FilePathWithDate -FilePath "C:\test\IV_1.csv" -DateFormat "dd-MM-yyyy"
$client.DownloadFile("https://files.docparser.com/d/jvmnvggcccfxz", $file)
作为旁白。。。尽量不要使用向后的欧盟格式或由内而外的美国格式。相反,请使用逻辑、可排序的
yyyy-MM-dd
格式。排序故障是“有趣的”,值得避免。[咧嘴笑]作为旁白。。。尽量不要使用向后的欧盟格式或由内而外的美国格式。相反,请使用逻辑、可排序的yyyy-MM-dd
格式。排序故障是“有趣的”,值得避免。[咧嘴笑]