Как я могу использовать bat-файл для массового копирования файлов из child-dir в root? - PullRequest
0 голосов
/ 05 октября 2019

Как я могу использовать Windows Bat или PowerShell для массового копирования файлов из дочерних каталогов в корневой / основной каталог? например,

c: \ dir \ 1 c: \ dir \ 2 c: \ dir \ 3 и т. д.

до c: \ dir

без необходимости копирования-вставкивсе они вручную.

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Если вы хотите переместить только файлы, быстрый грязный метод будет выглядеть примерно так:

$InputFolder = "C:\Dir"

$FilesToMove = Get-ChildItem -LiteralPath $InputFolder -Recurse | where { ! $_.PSIsContainer }
foreach ($File in $FilesToMove)
{
    Move-Item -LiteralPath $File.PSPath -Destination $InputFolder -Force
}

Так что, если, например, у вас есть: C:\Dir\MyDir1\File.txt, он переместит его в c:\dir\file.txt

Однако папки не будут перемещены.

например, скажем, c:\Dir\MyDir2\AnotherDir\ содержит File1.txt и Fle2.txt будут перемещены только файлы .txt, c:\Dir\MyDir2\AnotherDir\ останется без изменений, нобез каких-либо файлов.

0 голосов
/ 05 октября 2019
  • В пакетном файле:

    for /d %%d in ("C:\Dir\*") do for %%f in ("%%d\*") do copy "%%f" "%%d\.."

  • Интерактивно:

    for /d %d in ("C:\Dir\*") do for %f in ("%d\*") do copy "%f" "%d\.."

Подсказка: for /d перебирает каталоги. Используйте for /? для более подробной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...