Como mover o conteúdo da unidade removível para a pasta na mesma unidade usando o CMD?

5

Eu quero mover todo o conteúdo (incluindo subpastas) de uma unidade removível para a pasta que está dentro da unidade.

É assim que fica no Windows Explorer:

    
por Ilay Caliv 22.07.2016 / 18:10

3 respostas

2

Como faço para mover conteúdo (incluindo subpastas) de uma unidade para uma pasta diferente

Use o seguinte arquivo de lote (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

Nota:

  • Isso moverá o arquivo em lote também para Target Folder .

Leitura Adicional

por 22.07.2016 / 18:48
3

Você também pode usar o PowerShell:

Get-ChildItem | Where-Object {$_.Name -ne 'Target folder'} | Move-Item -Destination 'Target folder'

O primeiro comando no pipeline ( Get-ChildItem ) obtém todas as entradas na pasta atual. O segundo filtra pelo nome, passando tudo para o próximo comando, exceto os itens denominados Target folder . Esse comando final move o item (seja um arquivo ou pasta) para a pasta de destino.

Versão compacta:

$t='Target folder';gci|?{$_.Name -ne $t}|mv -Dest $t

Versão do script ( .ps1 ), consulte o wiki da tag do PowerShell para obter instruções sobre como ativar scripts:

$target = $args[0]
Get-ChildItem | Where-Object {$_.Name -ne $target} | Move-Item -Destination $target

Você chamaria esse script com a pasta de destino como o único argumento.

Para executar um comando do PowerShell em um prompt de comando normal, digite powershell -command seguido de qualquer coisa que você possa colocar em um prompt do PowerShell, entre aspas:

powershell -command "$t='Target folder';gci|?{$_.Name -ne $t}|mv -Dest $t"
    
por 22.07.2016 / 20:06
1

Se você quiser mover o conteúdo do driver removível para outra pasta na mesma unidade removível, o DOS possui o comando move .

diga r: é a letra da unidade.

r:\>md everything
r:\>move *.* everything
    
por 22.07.2016 / 18:16