Curinga no comando renomear e robocopy no arquivo em lote

1

O que estou tentando fazer é automatizar algum trabalho que faço diariamente. O que eu gostaria de acontecer é uma dica dizendo qual é o seu nome? Então use essa resposta como uma variável para ser usada em diferentes comandos como REN e ROBOCOPY. Atualmente estou fazendo o seguinte.

set /p var1="What is your Name?"
cd C:\ProgramData\filepath\Users\
IF exist var1(brk_file) (
gotto :renamed)
else
(goto :repair)
:Repair
REN "var1\current" "current.old"
ROBOCOPY "var1\backup" "current" /e

Agora, o nome deles sempre será usado no nome da pasta, mas pode incluir um número de versão ou MD ou outra coisa. Por exemplo, minha resposta seria "Cam", mas minha pasta que eu estou querendo renomear e copiar é "CamV10"

Então, eu gostaria de algo como

if exist *var1*(brk_file) (
goto :renamed)
else
(goto :repair)
:repair
REN "*var1*\current" "current.old"
ROBOCOPY "*var1*\backup" "current" /e

Isso não está funcionando para mim, qualquer sugestão seria apreciada.

    
por Cam 19.09.2015 / 07:38

1 resposta

0

Este é um problema XY. Para resolver Y, você cria um segundo problema chamado X e assim por diante. Embora seja mais fácil perguntar se ainda não existe uma solução para o Y.

Qual é o caso. Isso é chamado de Variável de ambiente . No seu caso, você está procurando pela variável de usuário.

Digite set no cmd para entender o que quero dizer.

Em seguida, digite @echo My username is: %USERNAME% and my home is: %USERPROFILE% .
que retornará:

 My username is: John and my home is: C:\Users\John

De qualquer forma, muitos erros no seu código. Você tem que ler IF /? porque ELSE declaração tem que estar na mesma linha de IF a menos que você use ) , então ele deve ser escrito em uma linha como ) ELSE (

Outra coisa: O que é (brk_file) ?

Se for uma string e fizer parte do var1 , você terá que escapar de ( e ) like

IF exist %var1%^(brk_file^)

ou você provavelmente poderia colocar entre aspas duplas como

IF exist "%var1%(brk_file)"

mas honestamente não tenho certeza.
De qualquer forma esse tipo de símbolo no caminho dos arquivos nunca é bom

    
por 20.09.2015 / 04:25