Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VBS]Recuperare riga di testo da file

    Ciao a tutti, io devo recuperare il testo di una riga da un file di testo:

    ho il file infonet.txt creato con il comando

    codice:
    ipconfig /all > infonet.txt
    Dopo con VBS (o se è possibile da dos con un cmd) devo trovare la riga contente "Ethernet adapter" e leggere il seguito.

    Nel caso del mio file è "Local Area Connection:", poi associare il risultato ad una variabile.

    Sono un pò ignorante in VBS, mi dareste una mano?

    Grazie.

  2. #2
    Questo codice non ha bisogno di creare il file temporaneo, fa tutto da solo.
    codice:
    Option Explicit
    Dim WshShell, oExec, regex, matches, match, adapterName
    Set WshShell = CreateObject("WScript.Shell")
    Set regex = new RegExp
    regex.Pattern = "Ethernet\ adapter\ (.*?):"
    regex.Global = True
    Set oExec = WshShell.Exec("ipconfig /all")
    Do While oExec.Status = 0
        WScript.Sleep 100
    Loop
    Set matches = regex.Execute(oExec.StdOut.ReadAll())
    For Each match In matches
        adapterName = match.SubMatches(0)
        'ora in adapterName è memorizzato il nome dell'adattatore di rete; qui ci fai quello che ci devi fare (in questo esempio, lo mostro all'utente)
        MsgBox adapterName
    Next
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Funziona!! Grazie mille! Mi hai salvato, ti devo un favore!!

    Io invece che mostrarlo dovrò scriverlo insieme ai dns per configurare la rete.

    So che da dos si usa netsh, lo uso come hai fatto tu con ipconfig /all , giusto?

    Se no dovre usare cmd /c confignet.bat (ad es), ma non sapresi come passare la variabile dallo script vbs allo script .bat...

  4. #4
    Al posto della MsgBox inserisci:
    codice:
    WshShell.Run("netsh interface ip set dns name=""" & adapterName & """ <impostazioni>")
    , dove <impostazioni> sono le impostazioni dei DNS (al prompt dei comandi inserisci netsh interface ip set dns per ottenere maggiori informazioni sulla sintassi di questa funzione di netsh).
    Nota che le impostazioni dei DNS in questo modo verranno cambiate per tutte le schede di rete del sistema.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Grazie mille.

    lo stavo provando con

    codice:
    WshShell.Exec
    Visto che ci sono, qual'è la differenza tra il sopra citato e WshShell.Run ?

    Grazie, sei molto gentile.

  6. #6
    Exec esegue un comando in una shell figlia e consente l'accesso al suo stdin e stdout, mentre Run semplicemente lancia l'eseguibile specificato come nuovo processo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Ok, grazie mille.

    Oltre alle guide su questo sito, tu sai consigliarmene altre? Sempre su VBScript.

    Ti ringrazio molto

  8. #8
    La solita MSDN ti dice più o meno tutto quello di cui hai bisogno su VBS (e su tutte le altre tecnologie Microsoft).
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.