Я хочу переместить все содержимое (включая подпапки) съемного диска в папку, которая находится внутри диска.
Вот как это выглядит в Windows Explorer:
Вы также можете использовать PowerShell:
Get-ChildItem | Where-Object {$_.Name -ne 'Target folder'} | Move-Item -Destination 'Target folder'
Первая команда в конвейере (Get-ChildItem
) получает все записи в текущей папке. Второй фильтрует по имени, передавая все следующей команде, кроме элементов с именем Target folder
. Эта последняя команда перемещает элемент (будь то файл или папка) в целевую папку.
Компактная версия:
$t='Target folder';gci|?{$_.Name -ne $t}|mv -Dest $t
Версия скрипта (.ps1
), см. Вики-тег PowerShell для получения инструкций по включению скриптов:
$target = $args[0]
Get-ChildItem | Where-Object {$_.Name -ne $target} | Move-Item -Destination $target
Затем вы вызываете этот сценарий с папкой назначения в качестве единственного аргумента.
Чтобы запустить команду PowerShell из обычной командной строки, введите powershell -command
а затем все, что можно добавить в приглашение PowerShell, в кавычках:
powershell -command "$t='Target folder';gci|?{$_.Name -ne $t}|mv -Dest $t"
Используйте следующий пакетный файл (MoveContent.cmd):
@echo off
setlocal
rem create target folder
md "Target Folder"
rem use dir to get a list of file and folders
rem use findstr /v to exclude target folder from the list
rem use for to loop through the list
for /f "usebackq tokens=*" %%i in (`dir /b ^| findstr /v "Target Folder"` ) do (
rem move the items in the list
move "%%i" "Target Folder"
)
endlocal
Замечания:
Target Folder
.Если вы хотите переместить содержимое съемного драйвера в другую папку на том же съемном диске, в DOS есть команда move .
сказать г: это буква диска.
r:\>md everything
r:\>move *.* everything