Newsgroup: it.comp.lang.visual-basic
Titolo: Comando DOS

Buongiorno a tutti,
volevo chiedervi se qualcuno ha mai eseguito un comando dos da vb6 e mandare
il risultato in un file di testo.
es:
shell(dir > a.txt,0)
Ho provato a scrivere così oppure con le " " oppure con " ' " e " ' ", ma
senza risultato. Come posso fare per eseguire qualsiasi istruzione dos e
scrivere il risultato in un file?
Grazie a tutti.

 shell(dir > a.txt,0)
Call Shell( _
    Environ("comspec") & " /c" _
  & " dir /?" _
  & " > " _
  & Chr$(34) _
  & Environ("windir") & "\desktop\pippo.txt" _
  & Chr$(34) _
  , vbHide)
NB: fatto con vb4 ma non credo cambi qualcosa in vb6. Nel caso mi
interesserebbe saperlo.
Proprio oggi ho inviato in un quesito al ng un esempio analogo per cui, se
l'argomento ti interessa, prova a vedere se il thread avra' seguito.
--
Ciao.
Maurizio

 scrivere il risultato in un file?
attenzione alle stringhe che passi, quindi alle virgolette:
MyOut = MainPath & "CabTmp.txt"
Conf = Shell("
command.com
 /c if exist " & MyOut & " del " & MyOut, vbHide)
DoEvents
MyFileShort = GetShortPathName(MyFile)
Conf = Shell("Command.com /c extract /d " & Chr(34) & MyFileShort & Chr(34)
& " > " & MyOut, vbHide)

Ciao Pal,
tutto questo mi serve perchè sto scrivendo un prg che mi permetta di
intercettare tutti quelli che provano ad entrare nel mio pc, ed a farli
pentire di averci provato, quando sono collegato in internet.
il comando che mi serve è il nbtstat -A ed il numero di IP.
L'istruzione che uso è la seguente :
call shell("nbtstat -A " & sIP & " > pippo.txt",vbhide)
Questo per riuscire a scrivere in un file i dati del mio attaccante.
Soltanto che il comando va in esecuzione, ma non mi crea il file, mentre se
lo digito in una finestra dos mi funziona perfettamente.
Non riesco  capire.
Ciao

 lo digito in una finestra dos mi funziona perfettamente.
sto provando a casa, dove la rete (2 pc on ip dinamico...) va come va.
cmq la routine qui sotto scrive i file, se do' l'ip o il nome della macchina
con cui lavoro (nella forma: nomepc, non \\nomepc) scrive i file.
dato che con nbtstat conta il case del parametro, ho messo 2 option. poi
c'e' un text in cui scrivere ip o nome, e un lbl.
con le virgolette sono andato a prove. prob ti covniene farne ancora un po'.
Private Sub Command1_Click()
    Dim conf, sss
    If optName Then
        sss = "nbtstat -a " & Chr(34) & Text1 & Chr(34) & " > nbtstat_n.txt"
    ElseIf optIP Then
        sss = "nbtstat -A " & Text1 & " > nbtstat_ip.txt"
    End If
    conf = Shell(sss)
    Label1 = sss & vbCrLf & conf
End Sub
ciao, a.

Ciao Pal,
ho provato come mi hai suggerito, ma non funziona.
E' come se non riuscisse ad eseguire il comando nella sua totalità.
Cioè esegue nbtstat, ma non utilizza i parametri che gli associo, come -A ed
il nr. IP.
Infatti mi apre la finestra dos, con titolo nbtstat.exe mentre se digito il
comando da una finestra dos, come caption mi visualizza tutto il comando
indicando anche il nr. ip.
Non riesco proprio a capire. Se vuoi, e se hai tempo, ti mando il codice per
dargli un'occhiata.
Ciao e grazie
Luca

 wrote in message
news:8ckl6l$3n9$1...@nslave2.tin.it...


 Ciao Pal, > ho provato come mi hai suggerito, ma non funziona.
ok luca, se non hai fretta mandami il vbp.
ciao, a.
--
andrea....@tin.it
free vb/sw: 
http://www.comune.modena.it/cittadini/apal/html/

 lo digito in una finestra dos mi funziona perfettamente.
Premessa:
' I doppi apici, Chr$(34), servono solo se
' sFullName conterra' spazi, quindi credo
' convenga metterli sempre.
'
sFullName$ _
  = Chr$(34) _
  & Environ("windir") & "\desktop\pippo.txt" _
  & Chr$(34)
Prima potresti testare cosi':
Shell Environ("comspec") & " /k" _
  & " nbtstat -A " & sIP _
  & " > " _
  & sFullName _
  , vbNormalFocus
poi, quando tutto e' a posto, fai cosi':
Shell Environ("comspec") & " /c" _
  & " nbtstat -A " & sIP _
  & " > " _
  & sFullName _
  , vbHide
--
Ciao.
Maurizio