Powershell 在文件名中包含当前日期

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

如何在文件的基本名称之后包含日期? 执行下面的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

插入如下日期:

$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
格式。排序故障是“有趣的”,值得避免。[咧嘴笑]