Предположим, у вас есть следующая структура внутри текущей папки
f0
|-f1
| |-a.txt
|-f2
|-b.txt
Если вы выполните следующую команду внутри этой папки:
powershell -Command "Get-ChildItem -Path 'f0\\*' -Recurse | Move-Item -Destination '.'"
файлы a.txt и b.txt будет скопирован, но без родительских папок f1 и f2 .
Но, если вы добавите какой-либо файл в f0 папка
f0
|-f1
| |-a.txt
|-f2
| |-b.txt
|-fake.txt
Та же команда powershell будет работать, как ожидалось
f0
f1
|-a.txt
f2
|-b.txt
fake.txt
Я что-то упустил?
Спасибо.
Обновление
Первоначальная задача - автоматическое развертывание cmake.Это исходный скрипт:
echo Downloading https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-win64-x64.zip
powershell -Command "(New-Object System.Net.WebClient).DownloadFile('https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-win64-x64.zip', 'cmake-3.15.3-win64-x64.zip')"
powershell -Command "Expand-Archive -LiteralPath cmake-3.15.3-win64-x64.zip -DestinationPath ."
powershell -Command "Get-ChildItem -Path 'cmake-3.15.3-win64-x64\*' -Recurse | Move-Item -Destination '.'"
powershell -Command "Remove-Item 'cmake-3.15.3-win64-x64'"
powershell -Command "Remove-Item 'cmake-3.15.3-win64-x64.zip'"