Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [vb.net] esecuzione di un file .bat va in errore

    ho un semplice file .bat (C:\dir.bat) che ha solo questa riga di codice:

    dir %1



    una semplice applicazione console tenta di eseguire questo .bat con questo codice
    codice:
    Sub Main()
    	Using p As New Process()
    		With p.StartInfo
    			.RedirectStandardOutput = True
    			.UseShellExecute = False
    			.FileName = "C:\dir.bat"
    			.Arguments = """" & "D:\Documenti\a Raccolta Programmi" & """"
    			.StandardOutputEncoding = Encoding.GetEncoding(437) '<== codifica MS-DOS Latin 1 
    		End With
    		p.Start()
    		'p.WaitForExit() '<== così va in errore
    
    		Dim s As String = p.StandardOutput.ReadToEnd()
    		File.WriteAllText("c:\tmp\dir.txt", s, Encoding.UTF8)
    
    	End Using
    
    
    
    	Console.Write("Premere un tasto per continuare . . . ") : Console.ReadKey()
    End Sub

    funziona solo se elimino l'istruzione p.WaitForExit()

    cosa sbaglio?
    Pietro

  2. #2
    va in errore=? appare a video una scritta lampeggiante rossa "vado in errore, torno tra un paio di settimane, ti mando una cartolina"?

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da optime
    va in errore=? appare a video una scritta lampeggiante rossa "vado in errore, torno tra un paio di settimane, ti mando una cartolina"?
    Hai ragione. Mi dice: Vado in ferie e ti do la risposta tra 2 settimane

    In effetti si blocca solamente

    La cosa strana è che, se lascio quella istruzione, funziona se cerco il DIR di D:\Documenti ma va in errore se cerco il DIR di D:\Documenti\AltraDirectory

    ciao
    Pietro

  4. #4
    questione di permessi? fatti anche stampare il comando, vedo che ci sono degli spazi -- controlla bene l'uso degli apici doppi

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da optime
    questione di permessi? fatti anche stampare il comando, vedo che ci sono degli spazi -- controlla bene l'uso degli apici doppi

    permessi? perché allora, se commento p.WaitForExit() funziona? anche da una pagina aspx
    Pietro

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Che errore ti da ?

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da cassano
    Che errore ti da ?
    si blocca.

    Leggo su Metodo Process.WaitForExit

    Imposta l'intervallo di tempo in base al quale attendere che il processo associato venga terminato, e blocca il thread corrente di esecuzione fino alla scadenza di tale intervallo o al termine del processo.

    Deduco che il thread richiamato non termina e si blocca tutto.
    Pietro

  8. #8
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    A quindi non va in errore è come se il processo che lanci non si chiuda mai.

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da cassano
    A quindi non va in errore è come se il processo che lanci non si chiuda mai.
    si, è esattamente così.

    La cosa ancora più strana è che me lo fa solo su alcune directory (sto provando ancora)
    Pietro

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.