Usando o comando Mover com / Y em um arquivo bat

1

Eu preciso mover todas as pastas em um diretório chamado Profile.V2 para fora do diretório e, em seguida, quero excluir o diretório. Eu estou usando um arquivo bat para fazer isso que está abaixo, isso funciona perfeitamente, exceto quando já existe uma pasta com o mesmo nome no local para o qual estou movendo os arquivos / pastas, isso faz com que o arquivo bat pare e avise aparecer perguntando se está Ok para sobrescrever a pasta. O comando move tem um argumento / Y que pressiona o prompt, no entanto, se eu colocá-lo depois de "mover" no meu arquivo bat ele não funciona. Alguém pode identificar por que e para onde deveria ir?

@ECHO OFF
H:
cd Profile.V2
for /f "delims=" %%a in ('dir /b') do (
  move "%%a" H:\
)
RD /S /Q H:\Profile.V2

Muito obrigado Steve

    
por Steve Lee 02.09.2011 / 15:46

2 respostas

1

Bem. Eu apenas faria "move / Y . H: \" Tanto quanto eu posso dizer que faz o mesmo que o loop for.

O / Y passa imediatamente após a mudança e tem de ser em maiúsculas.

(Oficialmente, não faz distinção entre maiúsculas e minúsculas, mas sei por experiência que de alguma forma isso importa em alguns sistemas. Nunca consegui descobrir o porquê.)

    
por 02.09.2011 / 16:13
0

O comando Mover requer que o diretório de destino não exista e falhará se existir. Não há argumentos de linha de comando que possam corrigir isso.

Você pode considerar este script:

@ECHO OFF
H:
xcopy h:\Profile.V2 h:\ /s/e/v/y
RD /S /Q H:\Profile.V2

O Xcopy copia o conteúdo do diretório Profile.V2 para a raiz da unidade H: e sobrescreve os arquivos existentes sem avisar. Ele irá criar todos os diretórios encontrados no profile.v2, incluindo os vazios.

Mover o conteúdo pode ser um objetivo menor, já que seu comando RD remove o diretório sem verificação.

Para uma explicação dos argumentos da linha de comando, digite:

xcopy /?
    
por 08.09.2011 / 00:30

Tags