Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    12

    [BATCH] Disinstallare programmi in Windows

    Salve a tutti!

    Per motivi lavorativi (mi renderebbe lavorare molto + veloce) avrei bisogno di uno scriptino .bat che mi permetterebbe di disinstallare tutte le versioni di office presenti nel pc.

    Dopo aver guardato un pò in giro sono giunto alla conclusione che calcolare tutte le possibili combinazioni di versione di office installate sul pc sia veramente un lavoraccio.
    Perciò pensavo di utilizzare il comando wmic che rende le cose molto semplici.

    wmic product get name #restituisce tutti i programmi installati sulla macchina
    wmic product where name="Microsoft ecc ecc" call uninstall #Fa partire in automatico l'uninstaller del programma

    il mio problema è che il nome da mettere deve essere presente per forza nel registro di windows in maniera completa... vorrei poter mettere solo un nome (che sò office )per far partire l'uninstaller di office qualunque sia la sua versione ma non sò gestire le variabili...

    Grazie anticipatamente!

    Spero possiate aiutarmi.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    12
    up

  3. #3
    Forse per questo scopo sarebbe più adeguato VBScript.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    12
    Mi puoi dare qualche dritta... sono disposto ad imparare...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    12
    Cerco un punto da cui iniziare please... calcolate che un pò ho programmato...

  6. #6
    Ti dovresti studiare la documentazione di WMI per VBScript, e VBScript in generale.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Se intendi microsoft office(word ecc) e eliminare solo gli eseguibili e i vari file,basterebbe fare(credo):

    codice:
    @echo off
    del "C:\Program Files\Microsoft Office\*.*"
    rd  "C:\Program Files\Microsoft Office\*.*"
    pause
    Soluzione brutale con la quale non ti assicuro niente,meglio chiedere a qualcuno di più esperto per conferma...

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2009
    Messaggi
    487

    NO

    In questo caso non vengono eliminate le chiavi di registro.... brutta cosa.... bisogneberre avviare l'unistaller..... con il linguaggio c++ potresti da un occhio alla API ShellExecute

    HINSTANCE ShellExecute(
    HWND hwnd,
    LPCTSTR lpOperation,
    LPCTSTR lpFile,
    LPCTSTR lpParameters,
    LPCTSTR lpDirectory,
    INT nShowCmd
    );


    API da msdn

    Esempio:

    codice:
    ShellExecute(NULL, "open", "C:\\Program Files\\Office\\unistall.exe", NULL, NULL, 1);
    //Il percorso è da aggiustare

  9. #9
    Entrambe soluzioni da evitare; la prima non sto neanche a spiegare perché ; la seconda non va bene perché la linea di comando con cui lanciare l'uninstaller va recuperata dall'apposita chiave di registro.
    L'idea di base di ck_, usare WMI, è ottima, dato che esso fornisce tutti gli strumenti per gestire questo genere di problematiche senza fare errori grossolani di questo genere; il problema è che usarlo da file batch non consente la flessibilità necessaria per la sua richiesta, per questo gli consigliavo di provare con VBScript (che peraltro è uno dei linguaggi da cui WMI si usa più comodamente).
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    12
    Perfetto... Penso proprio che allora mi studierò il VBScript...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.