今日有朋友来问我,他要写日报,然后内容差不多,所以可以用同一份文件直接复制,就是需要根据时间命名文件,我本身是做Java的,其实用Java很容易实现,但是他毕竟是非程序员,本地是没有Java环境的,然后用PowerShell进行实现也很简单。
copy-file.ps1
$file = "信息.json"
$startime = "2023-02-17"
# 时间格式化模板
$formate = "yyyy-MM-dd"
# 将字符串转成时间
$currenttime = [datetime]::parseexact($startime, $formate, $null)
# 分割文件名 获取 文件名称 和 文件后缀名
$filename = ((Split-Path $file -Leaf).Split('.'))[0]
$extension = ((Split-Path $file -Leaf).Split('.'))[1]
#$filedate = Get-Date -Format $formate
# 循环
for($x=1; $x -lt 101; $x=$x+1)
{
# 每次往上加x天
$addday = $currenttime.AddDays($x)
# 判断加完之后的日子是否是周六周日
$week = $addday.DayOfWeek
if($week -eq "Saturday" -or $week -eq "Sunday") {
echo $addday "is staurday or sunday"
}else{
# 如果是工作日则进行复制
$filedate = get-date -date $addday -format $formate
Copy-Item -Path $file $filename'_'$filedate.$extension
}
}
$file
指定要复制的文件,$startime
表示开始时间,之后调整循环次数,就可以进行复制。
注意:直接运行该文件,操作中文命名的文件会乱码,导致无法运行成功,需要保存为带BOM的UTF-8
格式的文件才行。