• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在脚本中复制一系列日期的数据?

powershell 来源:NZJames 5次浏览

我的要求是采取文件夹路径的列表 – 一些在路径中有一个yyyyMMdd日期 – 并根据请求将它们复制到另一个位置。如何在脚本中复制一系列日期的数据?

某些文件夹只需要保持原样复制 一些需要有五个天病史复制,计算过去五年的日期,他们代入的文件夹路径 一些需要做相同的,但15天或90天的历史。

我试图确定最好的方法来做到这一点。我本来打算把它做成BATCH文件,但我看不到如何计算和替换BAT中循环中的日期。

有没有更好的方法来做到这一点在基本脚本,可以从命令行执行?


===========解决方案如下:

尽管这不是一个代码编写服务,但它听起来像是您对该语言的新手,所以这里有些东西可以帮助您完成此任务。在将来,我建议你添加一些你已经试过的代码,因为你可能会得到更多的回应。

# Get-Date is a cmdlet in PowerShell to get the current date 
# We use AddDays(-5) to subtract however many days we would like. Here we are subtracting 5 days from current date 
# ToString converts the data type so that we can use the custom date format of yyyyMMdd 
$Date = (Get-Date).AddDays(-5).ToString('yyyyMMdd') 

# Get-Item cmdlet in PowerShell is used to get files in a directory 
# Select allows us to get a specific piece of data from the files found and ExpandProperty hides the data header 
$Files = Get-Item -Path C:\Temp\*$Date.txt | Select -ExpandProperty FullName 

# Copies Files Found with Get-Item 
Copy-Item -Path $Files -Destination C:\SomePathHere-Verbose -Force 

输出将如下所示:

PS C:\> $Date = (Get-Date).AddDays(-5).ToString('yyyyMMdd') 

# What is stored in $Date variable 
PS C:\> $Date 
20160708 

PS C:\> $Files = Get-Item -Path C:\Temp\*$Date.txt | Select -ExpandProperty FullName 

# What is stored in $Files variable 
PS C:\> Get-Item -Path C:\Temp\*$Date.txt | Select -ExpandProperty FullName 
C:\Temp\Somefile20160708.txt 
C:\Temp\SomeOtherFile20160708.txt 

PS C:\> Copy-Item -Path $Files -Destination C:\Test -Verbose -Force 
VERBOSE: Performing the operation "Copy File" on target "Item: C:\Temp\Somefile20160708.txt Destination: C:\Test\Somefile20160708.txt". 
VERBOSE: Performing the operation "Copy File" on target "Item: C:\Temp\SomeFile220160708.txt Destination: C:\Test\SomeOtherFile220160708.txt". 

希望这有助于你达成解决方案。 PowerShell非常适合这些类型的任务,我绝对建议您进一步探索它。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)