Como forçar uma sincronização do Google Drive no prompt de comando do Windows 7


8

Estou usando o Google Drive para sincronizar documentos pessoais quando estou no trabalho e preciso atualizar um arquivo em casa rapidamente para fins pessoais. Tenho tarefas em casa executando no gerenciador de tarefas, que usa esses arquivos atualizados e, às vezes, são sensíveis ao tempo.

Portanto, preciso configurar algo que forçará uma sincronização na pasta google drive do meu computador em casa, antes de iniciar a tarefa agendada e obter as atualizações mais recentes que fiz nesse arquivo enquanto estou no trabalho.

Até agora, todas as minhas pesquisas apontam para pausar e reiniciar o Google Drive a partir do ícone da bandeja, a fim de forçar uma sincronização, antes de desligá-lo e reiniciá-lo. Tentei e achei que esse esquema estava funcionando, mas não há como replicar a mesma função na linha de comando, ou seja, não existe uma opção de linha de comando como:

googledrivesync.exe /pause 

ou

googledrivesync.exe /restart

Tentei configurar um trabalho de auto-tecla para executar o trabalho de apontar e clicar do mouse, mas devido ao número inconsistente de ícones da bandeja, é melhor que aconteça.

Também tentei matar o googledrivesync.exe usando o taskkill e reiniciá-lo, mas, após a execução do googledrivesync.exe, ele deixa uma caixa do DOS aberta na área de trabalho. E se isso for feito mais algumas vezes (e o meu computador doméstico for executado a cada 15 minutos) o número dessas janelas, obstruirá a execução da minha tarefa agendada devido à cobertura da tela inteira.

Quaisquer outras idéias ou recursos não documentados do Google Drive são muito apreciados.


Provavelmente interrompa / reinicie o serviço via net stop& net start. Se alguém (ou você) não tiver uma resposta antes que eu possa entrar em um sistema de teste neste fim de semana, verei se posso obter mais detalhes. O Google Drive também pode ter outros parâmetros de linha de comando que você ainda não encontrou, mas não tenho certeza disso e parece que você já fez uma busca suficiente para tornar essa possibilidade improvável.
Iszi


Não, não é uma duplicata da pergunta superuser.com/questions/463801/… . Eu vi e ler as respostas para isso, mas minha necessidade é para uma atualização "on-demand" ao invés de uma autônoma
MelBurslan

@lszi Não estou executando como um serviço. Começo com a demanda, principalmente durante o dia, quando estou fora de casa, e a fecho quando volto para casa.
MelBurslan

@MelBurslan De fato, parece que não se registra como um serviço. Você pode fazer taskkillpara matá-lo, depois outro comando para reiniciar. Ou o PowerShell pode fazê-lo com mais elegância. Vamos ver se um desses vai funcionar, ou pode haver outra solução ...
Iszi

Respostas:


3
  1. Matar o processo GoogleDriveSync
  2. No prompt de comando, vá para a pasta, c: \ arquivos de programas \ Google \ drive \
  3. execute googledrivesync.exe / autostart

2

Como você já possui um método para finalizar o serviço, e o único problema é a janela stub cmd, basta escrever um pequeno script em lote que:

  1. Execute seu método para reiniciar o serviço
  2. Faça a casca morrer.

Algo assim:

taskkill /fi "Service eq Google Sync"
exit

Perdoe minha ignorância, mas parece que sua taskkillsugestão é matar um serviço. A menos que eu esteja totalmente no escuro, meu processo de googledrivesync é executado como um processo regular, não como um serviço e eu quero que ele funcione da mesma maneira, ou seja, NÃO É UM SERVIÇO. Existe uma maneira de executar esse processo a partir da linha de comando e enviá-lo para segundo plano, para que eu possa sair da janela do DOS a partir da qual foi executada, sem interromper o processo googledrivesync?
MelBurslan 23/02

@MelBurslan, na verdade, o taskkill pode finalizar processos e serviços , estou usando, /fipois pode ser um serviço, mas você pode usar /impara filtrar pelo nome da imagem do processo.
Braiam 24/02

Eu estou familiarizado com o taskkill, mas meu problema ainda permanece (a menos que o googledrivesync.exe tenha sido atualizado de maneira importante). Depois de finalizar esse processo, preciso iniciá-lo na linha de comando e preciso que a janela dos / cmd desapareça após a execução. Mas, quando executo o googledrivesync.exe, o executável nunca libera o prompt de comando. Portanto, colocá-lo em um lote não fará nenhuma diferença. Não é um especialista em janelas. Portanto, se houver algum truque para enviar o processo para segundo plano, não estou ciente disso.
MelBurslan

É um desligamento adequado ou uma morte forçada (o que quero dizer taskkill)?
Chaminda Bandara 24/09

O taskkill @ChamindaBandara envia o sinal de interrupção para o processo se você usar / f. Caso contrário, ele geralmente envia terminar.
Braiam

2

Esta é uma pergunta antiga. Mas como isso apareceu quando eu estava procurando pelo mesmo problema. Aqui está o que eu fiz.

Um pequeno aplicativo C # que deve fazer o que o OP gostaria para 'googledrivesync.exe / restart'

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace StartStopGDrive
{
  class Program
  {
    static void Main(string[] args)
    { 
      Process[] procs = Process.GetProcesses();
      foreach (Process proc in procs)
      {
        if (proc.ProcessName == "googledrivesync")
          proc.Kill();
      }
      Process.Start(@"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Drive\Google Drive");
    }
  }
}

1

Não sei se estou atrasado, mas é isso que estou usando desde os últimos 3 a 4 anos para fazer backup de meus dados no gdrive. Basta clicar em um ícone do arquivo em lotes que criei e a linha abaixo faz parte dele. Isso iniciará o Google Drive a partir de um arquivo em lotes. Espero que isto ajude.

c:> Iniciar C: \ Programa ~ 1 \ Google \ Drive \ google ~ 1.exe

usando o comando start não deixará a caixa preta dos aberta :-)

Para finalizar o google drive

você pode usar o comando do prompt dos

taskkill / f / im googledrivesync.exe

espero que isto ajude.

Apoorva


No caso de haver segunda unidade do Google em execução, entãotaskkill /f /im google~1.exe
MotsManish

0

Há apenas uma maneira de forçar uma sincronização no Google Drive. Você precisa ter um "Arquivo conflitante" que o Google não pode sincronizar (corrompido ou o que seja). Em seguida, clique com o botão direito do mouse no ícone do Gdrive, selecione "Exibir arquivos não sincronizados" e clique em "Repetir".

Funciona sempre e estou sincronizando 15 servidores em nuvem entre si. PITA, eles deveriam ter uma opção para forçar a ressincronização, mas todos sabemos por que não - largura de banda. O Google diminuiu a frequência de ressincronização para reduzir custos, pura e simplesmente.


-4

Como escrevi um pequeno aplicativo apenas para solucionar esse problema, ele reiniciará o aplicativo Google Drive periodicamente, forçando a ressincronização. Espero que ajude :)

Automatizar - force o Google Drive a sincronizar arquivos


3
Você pode explicar com mais detalhes o que isso faz e custa? O VirusTotal surgiu principalmente limpo, apenas um o mostra problemático: Kingsoft Win32.Troj.IAgent.wt. (Kcloud) 20150211
Dom

desculpe, mas seu aplicativo não faz nada por mim. Ainda é gráfico (depende do ícone da bandeja) e é periódico. Preciso de algo que possa executar a partir da linha de comando e sob demanda.
MelBurslan 23/02

É um alerta falso positivo. E seu objetivo não é ter o arquivo mais recente antes que as tarefas os coloquem? Meu aplicativo apenas mantém a cópia atualizada. Mas se você quiser, posso enviar .exe, que reiniciará o Google Drive sem executar periodicamente. Assim, você pode executá-lo sob demanda ou agendar conforme desejar.
Shunmugh Sundaram
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.