Executando um determinado comando XCOPY sem interação do usuário

2

Estou tentando executar o seguinte comando no Windows CLI:

XCOPY Z:\.vimrc %USERPROFILE%\_vimrc /H

A parte /H precisa estar lá porque Z:\.vimrc é um arquivo oculto.

Quando executo o comando acima, recebo a seguinte mensagem:

Does C:\Users\Matt\_vimrc specify a file name
or directory name on target
(F = file, D = directory)?

Este comando será eventualmente parte de um arquivo BAT e eu não quero esse prompt. A resposta para isso é sempre "F".

Se .vimrc e _vimrc tivessem o mesmo nome, eu poderia executar um desses comandos e acabar com isso:

XCOPY Z:\.vimrc %USERPROFILE%\ /H
XCOPY Z:\.vimrc %USERPROFILE% /H /I

Mas eles não são, então eu não posso. Como faço para suprimir essa mensagem?

Eu sei que eu poderia copiá-lo com o mesmo nome de arquivo e, em seguida, movê-lo, mas vamos lá, isso realmente tem que ser dois comandos? Eu só estou copiando um arquivo.

Nota: quando já existe um arquivo %USERPROFILE%\_vimrc , a mensagem não aparece.

    
por Matt Alexander 12.04.2011 / 18:35

3 respostas

2

Ugh.

echo F | XCOPY Z:\.vimrc %USERPROFILE%\_vimrc /H
    
por 12.04.2011 / 23:35
1

Hack:

type Z:\.vimrc > "%USERPROFILE%\_vimrc"
    
por 12.04.2011 / 23:10
0

Eu realmente não consigo ver o problema de renomear depois

xcopy Z:\.vimrc %USERPROFILE%\ /H && ren %USERPROFILE%\.vimrc _vimrc

Se houver a possibilidade de o arquivo já existir:

if NOT EXIST %USERPROFILE%\_vimrc (
    xcopy Z:\.vimrc %USERPROFILE%\ /H && ren %USERPROFILE%\.vimrc _vimrc
) ELSE (
    del %USERPROFILE%\_vimrc
    xcopy Z:\.vimrc %USERPROFILE%\ /H && ren %USERPROFILE%\.vimrc _vimrc
)
    
por 12.04.2011 / 18:53