копирование файлов из ежедневных папок с помощью Powershell - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу переместить ежедневно созданные файлы каждый день в другую папку.Эти файлы сохраняются в соответствующую папку YYYY \ MM \ каждый день.Теперь я создал способ перемещения этих файлов, используя функцию даты год / месяц, однако, поскольку к месяцу прикреплено число, то есть декабрь выглядит как «12. Декабрь», он становится немного сложнее.

Я попытался исправить это с помощью оператора 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

Любая идея, как это исправить / где я иду не так.Я впервые пишу в Powershell.

Редактировать: я получаю сообщение об ошибке в расположении, в которое копируется файл, не регистрирует разницу в основных месяцах.Например, в операторе if говорится, что если месяц = ​​декабрь, то a должен = 12. но в настоящее время он становится равным 1., что должно быть в случае, если бы это был январь

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018
$Date = get-date
$Path = "F:\BB\" + "$($Date.year)" + "\" + "$($Date.month)" + "\"
Copy-Item -Path $Path -Destination F:\BB
0 голосов
/ 18 декабря 2018

Различные формы месяца также могут повторяться в строке формата, где

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:\BB\2018\12. Dezember\Scan.pdf

Но мне не хватаетдней здесь?

0 голосов
/ 18 декабря 2018

Если вы используете $month = Get-Date -Format "MM", вы получите месяц как число.Если я понимаю, что вы пытаетесь достичь, это должно соответствовать вашему исходному пути.

...