Скопируйте один и тот же файл в несколько разных папок PowerShell

Я хочу скопировать один файл logo.png в несколько разных папок. На данный момент я делаю так

Get-Childitem "D:\OrgIcon" -Recurse -Include "*logo.png" | 
Copy-Item -Destination "D:\LoginPage"

Get-Childitem "D:\OrgIcon" -Recurse -Include "*logo.png" | 
Copy-Item -Destination "D:\HomePage"

Get-Childitem "D:\OrgIcon" -Recurse -Include "*logo.png" | 
Copy-Item -Destination "D:\AboutUs"

Есть ли способ сделать это одной командой?

Я видел это, но выглядит иначе.


person R15    schedule 15.03.2019    source источник


Ответы (1)


Я не знаю ни одной команды для достижения того, что вы пытаетесь сделать. Как указано в опубликованной вами ссылке, вы можете достичь своей цели с помощью одной строки кода, но это связано с конвейером.

"D:\LoginPage", "D:\HomePage", "D:\AboutUs" | ForEach-Object { Get-Childitem "D:\OrgIcon" -Recurse -Include "*logo.png" | Copy-Item -Destination $_}

В первой части вы просто перечисляете пункты назначения в виде строк, разделенных запятой.

Вторая часть будет выполнять код в фигурных скобках { } для каждого пункта назначения.

Примечание. $_ обозначает данные, которые в настоящее время находятся в конвейере, поэтому на каждой итерации $_ будет заменено вашим пунктом назначения.

Я предполагаю, что если вам нужно регулярно делать это с разными местами назначения, источниками и именами файлов, вы всегда можете написать файл сценария, который принимает ввод для своих параметров, но это тема для другого вопроса.

Надеюсь, это полезно.

person MondQ    schedule 15.03.2019