Come forzare una sincronizzazione di Google Drive dal prompt dei comandi di Windows 7


8

Sto usando Google Drive per sincronizzare i documenti personali quando sono al lavoro e devo aggiornare rapidamente un file a casa per scopi personali. Ho compiti a casa in esecuzione sotto Task Manager, che utilizza questi file aggiornati e talvolta sono sensibili al tempo.

Quindi, ho bisogno di impostare qualcosa, che forzerà una sincronizzazione sulla cartella dell'unità google del mio computer di casa, prima di iniziare l'attività pianificata e ottenere gli ultimi aggiornamenti che ho fatto su quel file, mentre sono al lavoro.

Finora, tutte le mie ricerche puntano a mettere in pausa e riavviare l'unità Google dall'icona nella barra delle applicazioni, al fine di forzare una sincronizzazione, a meno di spegnerlo e riavviarlo. Ho provato e ho scoperto che questo schema funzionava, ma non c'è modo di replicare la stessa funzione dalla riga di comando, cioè non esiste un interruttore della riga di comando come:

googledrivesync.exe /pause 

o

googledrivesync.exe /restart

Ho provato a impostare un processo di autohotkey per eseguire questo processo di puntamento e clic del mouse, ma a causa del numero incoerente di icone nella barra delle applicazioni, nel migliore dei casi si tratta di un errore.

Ho anche provato a uccidere googledrivesync.exe usando taskkill e riavviandolo, ma, dopo l'esecuzione di googledrivesync.exe, lascia aperta una finestra DOS sul desktop. E se ciò viene fatto più volte (e viene eseguito mentre il lavoro del mio computer di casa viene eseguito ogni 15 minuti) il numero di queste finestre, ostacola l'esecuzione dell'attività pianificata a causa della copertura dell'intero schermo.

Qualsiasi altra idea o funzionalità di Google Drive non documentata è molto apprezzata.


Probabilmente interrompere / riavviare il servizio tramite net stop& net start. Se qualcuno (o te stesso) non ha una risposta prima di poter accedere a un sistema di test questo fine settimana, vedrò se posso ottenere maggiori dettagli. Google Drive potrebbe anche avere altri parametri della riga di comando che non hai ancora trovato, ma non ne sono sicuro e sembra che tu abbia già fatto abbastanza caccia per rendere improbabile questa possibilità.
Iszi,


No, non è un duplicato della domanda superuser.com/questions/463801/… . Ho visto e letto le risposte a questo, ma il mio bisogno è un aggiornamento "su richiesta" piuttosto che un aggiornamento automatico
MelBurslan,

@lszi Non lo eseguo come servizio. Lo avvio su richiesta, soprattutto durante il giorno, quando sono lontano da casa, e lo spengo quando torno a casa.
MelBurslan,

@MelBurslan In effetti sembra che non si registri come un servizio. Potresti fare taskkillper ucciderlo, quindi un altro comando per riavviare. Oppure PowerShell potrebbe essere in grado di farlo in modo più elegante. Vediamo se uno di questi funzionerà o potrebbe esserci un'altra soluzione ...
Iszi,

Risposte:


3
  1. Termina processo GoogleDriveSync
  2. Nel prompt dei comandi vai alla cartella, c: \ program files \ Google \ drive \
  3. eseguire googledrivesync.exe / avvio automatico

2

Dato che hai già un metodo per terminare il servizio e l'unico problema è la finestra cmd dello stub, basta scrivere un piccolo script batch che:

  1. Eseguire il metodo per riavviare il servizio
  2. Fai morire il guscio.

Qualcosa come questo:

taskkill /fi "Service eq Google Sync"
exit

Perdonate la mia ignoranza, ma sembra che il vostro taskkillsuggerimento sia di uccidere un servizio. A meno che non sia totalmente al buio, il mio processo googledrivesync funziona come un normale processo, non come un servizio e voglio che funzioni allo stesso modo, cioè NON UN SERVIZIO. C'è un modo per eseguire questo processo dalla riga di comando e inviarlo in background, in modo che io possa uscire dalla finestra DOS da cui è stato eseguito, senza uccidere il processo googledrivesync?
MelBurslan,

@MelBurslan in realtà, taskkill può terminare processo e servizi , lo sto usando /fipoiché potrebbe essere un servizio ma è possibile utilizzare /imper filtrare in base al nome dell'immagine del processo.
Braiam,

Ho familiarità con taskkill ma il mio problema persiste (a meno che googledrivesync.exe non sia stato aggiornato in modo sostanziale). Dopo aver terminato questo processo, devo essere in grado di avviarlo dalla riga di comando e ho bisogno che la finestra dos / cmd scompaia al termine dell'esecuzione. Ma, quando eseguo googledrivesync.exe, l'eseguibile non rilascia mai il prompt dei comandi. Quindi metterlo in un batch non farà alcuna differenza. Non un esperto di Windows. Quindi, se esiste un trucco per inviare il processo in background, non ne sono consapevole.
MelBurslan,

È un arresto corretto o un'uccisione forzata (cosa intendo taskkill)?
Chaminda Bandara,

@ChamindaBandara taskkill invia semplicemente il segnale di kill al processo se usi / f. Altrimenti invia di solito terminare.
Braiam,

2

Questa è una vecchia domanda. Ma dal momento che questo è apparso quando stavo cercando lo stesso problema. Ecco cosa ho fatto.

Una piccola app C # che dovrebbe fare ciò che OP vorrebbe per "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

Non so se sono in ritardo, ma questo è quello che sto usando dagli ultimi 3-4 anni per fare il backup dei miei dati su gdrive. Basta fare clic su un'icona del file batch che ho creato e sotto la riga ne fa parte. Questo avvierà Google Drive da un file batch. Spero che sia di aiuto.

c:> Avvia C: \ Progra ~ 1 \ Google \ Drive \ google ~ 1.exe

usando il comando start non lasciare aperta la casella dos nera :-)

Per terminare l'unità Google

puoi usare il comando dal prompt dei dos

taskkill / f / im googledrivesync.exe

spero che sia di aiuto.

Apoorva


Nel caso in cui ci sia una seconda unità Google in esecuzione allorataskkill /f /im google~1.exe
MotsManish

0

C'è un solo modo per forzare una sincronizzazione in Google Drive. È necessario disporre di un "File in conflitto" che Google non possa sincronizzare (danneggiato o altro). Quindi fai clic con il pulsante destro del mouse sull'icona Gdrive, seleziona "Visualizza file non sincronizzabili" e fai clic su "Riprova".

Funziona sempre e sto sincronizzando 15 server cloud tra loro. PITA, dovrebbero avere un'opzione per forzare la risincronizzazione ma sappiamo tutti perché non lo fanno - larghezza di banda. Google ha abbassato la frequenza di risincronizzazione per ridurre i costi, chiari e semplici.


-4

Ho scritto una piccola app solo per risolvere questo problema e riavvierà periodicamente l'app Google Drive forzando così la risincronizzazione. Spero che sia d'aiuto :)

Automatizza: imponi a Google Drive di sincronizzare i file


3
Puoi spiegarci più in dettaglio cosa costa e costa? VirusTotal è risultato per lo più pulito, solo uno lo mostra come problematico: Kingsoft Win32.Troj.IAgent.wt. (Kcloud) 20150211
Dom

scusa ma la tua candidatura non fa nulla per me. È ancora grafico (dipende dall'icona della barra delle applicazioni) ed è periodico. Ho bisogno di qualcosa che posso eseguire dalla riga di comando e su richiesta.
MelBurslan,

È un falso avviso positivo. E il tuo obiettivo non è avere il file più recente prima che le attività vengano raccolte? La mia app non fa altro che mantiene la copia aggiornata. Ma se vuoi, posso inviarti .exe che riavvierà Google Drive senza essere eseguito periodicamente. Quindi puoi eseguirlo su richiesta o pianificare come desideri.
Shunmugh Sundaram,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.