Lote movendo arquivos para outra pasta / diretório no Windows?

6

Estou recebendo uma mensagem de erro dizendo que não consigo mover arquivos para um único arquivo. Eu não estou tentando fazer isso. O que estou tentando fazer é mover os arquivos de uma pasta para outra pasta (armazenamento temporário) e, em seguida, excluir a pasta original.

Se você puder me mostrar uma maneira melhor de fazer isso, pois não estou fazendo isso corretamente.

Aqui está o meu arquivo .cmd :

Y:
move "Y:\ABC_files\*.js" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.CSS" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.png" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.htm" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC_files\*.gif" "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
move "Y:\ABC.htm "C:\Documents and Settings\user\Desktop\ABC_Stage\"
rmdir "Y:\ABC_files"
C:\"Program Files"\"App X"\App-IDE.exe -r ABC4.run
    
por jdamae 22.06.2011 / 00:30

4 respostas

5

Pessoalmente, eu preferiria o XCOPY aqui, pois ele tem mais opções que podem ser úteis, especialmente se você alterar o arquivo de lote e, em seguida, remover o diretório e os arquivos antigos usando um comutador.

Eu também daria as aspas, a menos que haja um espaço real no local ou nome do arquivo. Em seu último lance, você realmente descartou uma cotação e isso provavelmente produziria um erro. Sua última declaração também está incorreta: você só coloca aspas ao redor do comando INTEIRO antes das opções, não das partes dele. Eu adicionei os switches que considero potencialmente úteis: Você pode ver o que cada um faz ao fazer um xcopy /? em um prompt de comando. Eu também questionaria se o seu, em sua última cópia, se abc.htm está realmente no diretório raiz ... verifique isso e edite de acordo, se necessário. Por fim, edite a parte do usuário para refletir seu nome de usuário. Não sei mais nada sobre sua última linha, já que isso é específico do aplicativo.

Y:
xcopy Y:\ABC_files\*.js "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.css "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.png "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.htm "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC_files\*.gif "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files\"
xcopy Y:\ABC.htm "C:\Documents and Settings\user\Desktop\ABC_Stage\"
rd Y:\ABC_files /s /q
del Y:\ABC.htm
"C:\Program Files\App X\App-IDE.exe" -r ABC4.run
    
por 22.06.2011 / 02:27
1

Existem duas soluções que sugerem o que você deseja fazer. Se você quiser copiar apenas os arquivos .js, .css, .htm, etc., use a primeira solução. Se você realmente quer tudo nas pastas de origem, vá para o segundo. Note que ambos dão a você a oportunidade de garantir que tudo esteja ok antes de excluir os arquivos de origem. Além disso, assume que o diretório de destino já existe.

Solução 1:

for %%f in (js css png htm gif) do (
copy Y:\ABC_files\*.%%f "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files"
)

copy Y:\ABC.htm "C:\Documents and Settings\user\Desktop\ABC_Stage"

echo Check that your files copied correctly, then
pause
rmdir /s /q Y:\ABC_files
"C:\Program Files\App X\App-IDE.exe" -r ABC4.run

Solução 2:

xcopy Y:\ABC_files\*.* "C:\Documents and Settings\user\Desktop\ABC_Stage\ABC_files" /s /e

echo Check that your files copied correctly, then
pause
rmdir /s /q Y:\ABC_files
"C:\Program Files\App X\App-IDE.exe" -r ABC4.run
    
por 22.06.2011 / 04:08
0

Por que não mover o diretório inteiro? Dessa forma, você tem todos os seus arquivos copiados com um comando sem ter que limpar nada.

Move Y:\ABC_Files "%userprofile%\desktop\staging"

Nota:% userprofile% é uma variável para C: \ documents and settings \ CurrentlyLoggedOnUser \

Em arquivos em lote, digite-os para obter a realocação de arquivos:

Move /-y "Y:\ABC_Files" "%userprofile%\desktop\staging"
    
por 22.06.2011 / 05:08
0

Experimente o seguinte comando

move "C:\Documents and Settings\amitrajk\Desktop\New Folder\*.*" "C:\Documents and Settings\amitrajk\Desktop\New Folder\InFolder"
    
por 07.05.2013 / 11:46