Windows CMD - aguarde que o arquivo termine de copiar e execute um comando

0

Estou tentando executar um comando depois que uma alteração de arquivo é detectada. meu problema é que o programa que uso instantaneamente atua quando um arquivo é criado, mas não é totalmente concluído.

Agora eu usei timeout /t 180 /nobreak antes do meu script para corrigir isso temporariamente e depois executar meus comandos desejados, mas isso não funcionará para todos os arquivos que eu fizer, alguns levarão mais de 180 segundos.

O que eu estou tentando realizar é transferir arquivos de vídeo pela rede local para uma pasta compartilhada que, a partir daí, o PC com a pasta compartilhada detecta uma alteração / criação de arquivo e aguarda o arquivo ser completamente transferido e executado .bat /. cmd

Existe alguma maneira de fazer isso. Qualquer ajuda é muito apreciada. Obrigado!

    
por John Him 20.01.2017 / 05:50

2 respostas

0

Você deve olhar para isso de outra perspectiva.

O script que copia o arquivo saberá quando a transferência estiver concluída e poderá, portanto, a hora em que a próxima ação deverá começar.

Você quer executar as duas ações do mesmo script.

Isso oferece duas opções:

Execução remota

O programa PSExec (pode ser baixado da microsoft) pode executar um programa em uma máquina de destino se ele foi iniciado com direitos suficientes. Ele pode ser usado para iniciar o programa na máquina remota após a conclusão da cópia.

Cópia reversa

Você está copiando da origem para o destino. Se você compartilhar a pasta na qual o arquivo está, também poderá iniciar a cópia no lado de destino.

    
por 20.01.2017 / 09:13
0

Você pode usar para transferir arquivos syncthing no modo master (sincronização unidirecional). Enquanto ele transfere o arquivo, ele cria um arquivo temporário e somente no sucesso o renomeia para o nome do arquivo real. Se o seu programa de monitoramento irá observar as extensões de um arquivo em particular, ele irá selecioná-lo quando a transferência terminar, para que você possa executar sua próxima tarefa imediatamente. Coisas semelhantes podem ser feitas com programas compatíveis com torrents (restritos a sua rede local), onde o arquivo real aparecerá apenas de transferências concluídas.

P.S. Syncthing por padrão sincronizando em janelas de tempo predefinidas, mas se você precisar de transferência imediata, pode usar o programa que chama syncthing-inotify , assim qualquer coisa que foi alterada / criada / excluída no local de origem será replicada no PC de destino imediatamente .

    
por 20.01.2017 / 06:37