Copia arquivos para o diretório quando não sei o caminho inteiro

1

Eu tenho um aplicativo que gera um diretório com alguns arquivos quando é aberto. Eu gostaria de acessar alguns arquivos neste diretório para exportá-los e também importar para este diretório. A estrutura do diretório se parece com isso:

+ Folder I know
   + Auto Generated Folder         'Name changes every time
      -SomeFile
      -SomeFile2
      +macro
         -macro1
         -macro2
         -macro3

Eu quero trabalhar apenas com os arquivos no subdiretório "macro". Eu tenho uma solução de exportação de trabalho usando o comando 'for' que examina a 'Pasta que eu conheço' e faz uma correspondência:

 for /R "C:\Folder I know\" %f in ("macro*") do @xcopy "%f" "destination path" /u /y

A opção / u no comando xcopy permite que eu atualize apenas os arquivos que já existem no destino. Agora a questão é: como faço a mesma coisa, mas ao contrário? Eu quero copiar arquivos de uma pasta (digamos c: \ temp) e atualizá-los na pasta de macro somente se eles já estiverem lá.

    
por AdmSteck 24.01.2012 / 14:55

2 respostas

0

Depois de pensar e testar mais, encontrei uma solução.

FOR /R "C:\Folder I know\" %f IN ("*") DO @xcopy "network path\%~nf" "%~pf" /e /u /y

O comando for ainda apenas analisa cada arquivo na pasta que eu conheço, incluindo os sub-diretórios que não conheço. Em seguida, ele faz um xcopy usando o caminho de rede no qual os arquivos são submetidos a backup. O %~nf anexado ao final obtém o nome do arquivo atual do comando for. Em seguida, copia-o para a pasta local usando o %~pf , que obtém o caminho do arquivo atual do comando for.

    
por 25.01.2012 / 19:12
0

Não tenho certeza se entendi exatamente o que você está tentando fazer, mas parece que a variável de ambiente %CD% pode ser útil. Essa variável monitora o diretório de trabalho atual, incluindo a letra da unidade e o caminho completo. Aqui está uma captura de tela em ação.

Conhecendo essa variável, você pode usá-la em scripts em qualquer grau que achar útil. Em seu caso particular, parece que você pode ter que copiar seu script para a pasta de macros toda vez que ele é gerado e executá-lo a partir daí.

A única maneira de escrever um script que funcione externamente, é se você puder obter qualquer variável que o programa crie para gerar automaticamente o nome de uma pasta. Como alternativa, se o nome da pasta gerada automaticamente seguir algum tipo de convenção que você poderia corresponder a um padrão, provavelmente há algumas opções envolvendo instruções IF, RegExes e comandos de string que podem funcionar para você.

    
por 24.01.2012 / 15:17