使用 Powershell 从日常文件夹复制文件

copying files from daily folders using Powershell

我想将每天创建的文件移动到另一个文件夹。这些文件每天保存到相关的YYYY\MM\folder。现在我已经创建了一种使用 year/month 日期函数移动这些文件的方法,但是因为有一个数字附加到月份,即十二月看起来像“12. December”,它变得有点棘手。

我试图用一个 If 语句修改它,它将 "a" 分配给与月份对应的相关数字,但它不起作用。

$year = (Get-Date).Year
$month = Get-Date -Format "MMMMMMMM"
$day = (Get-Date).Day

$a = ""



If ($month = "January") { $a = "1."}
Elseif ($month = "February") { $a = "2."}
Elseif ($month = "March") { $a = "3."}
Elseif ($month = "April") { $a = "4."}
Elseif ($month = "May") { $a = "5."}
Elseif ($month = "June") { $a = "6."}
Elseif ($month = "July") { $a = "7."}
Elseif ($month = "August") { $a = "8."}
Elseif ($month = "September") { $a = "9."}
Elseif ($month = "October") { $a = "10."}
Elseif ($month = "November") { $a = "11."}
Elseif ($month = "December") { $a = "12."}



$month = Get-Date -Format $a" MMMMMMMM"


Copy-Item -Path F:\BB$year$month\Scan.pdf  -Destination F:\BB

知道如何解决 this/where 我是不是错了。这是我第一次用Powershell写东西。

编辑:我在复制到的文件位置中遇到错误,没有记录相应月份的差异。例如 if 语句声明如果月份 = December a should = 12. 但它当前显示为 1. 如果它是 January

应该是这种情况

如果你使用 $month = Get-Date -Format "MM" 这将使您获得月份的数字。如果我了解您要实现的目标,这应该与您的源路径相匹配。

$Date = get-date
$Path = "F:\BB\" + "$($Date.year)" + "\" + "$($Date.month)" + "\"
Copy-Item -Path $Path -Destination F:\BB

月份的不同形式也可以在格式字符串中重复,其中

M    = month number without leading zeroes
MM   = month number with    leading zeroes
MMM  = abbreviated month name 
MMMM = full month name

所以:

$Month = Get-Date -f "M. MMMM"

> $Month
12. December

由于格式字符串可以包含任何字母,因此您可以一步构建源路径:
(如果干扰格式字母,则用反斜杠转义)

$Source = "F:\BB\{0:yyyy\M. MMMM}\Scan.pdf" -f (Get-Date)

> $Source
F:\BB18. Dezember\Scan.pdf

但我怀念这里的日子?