ben008
Messages postés16Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention31 mars 2010
-
3 févr. 2010 à 11:31
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
3 févr. 2010 à 15:38
Bonjour a tous.
Tout d'abord merci a ceux qui liront ce post.
J'ai un petit souci d'interprétation de chemin par une instance streamwriter :
Dim MonStreamWriter2 As StreamWriter = New StreamWriter("%systemdrive%\admin.bat", append:=False)
Le problème est qu'il interprète le chemin a partir du dossier dans lequel il est exécuté.
Exemple :
Si mon appli se trouve dans X:\toto
il va me dire qu'il ne trouve pas le chemin "X:\toto\%systemdrive%\admin.bat"
En revanche j'ai fait le test ou j'ai remplacé le chemin %systemdrive%\admin.bat par C:\admin.bat et la le chemin est bien compris.
Savez vous comment résoudre ce problème?
Merci d'avance.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 3 févr. 2010 à 12:03
Devrait être :
Dim MonStreamWriter2 As StreamWriter = New StreamWriter(%systemdrive% & "\admin.bat", append:=False)
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
ben008
Messages postés16Date d'inscriptionsamedi 20 décembre 2003StatutMembreDernière intervention31 mars 2010 3 févr. 2010 à 14:00
Merci cela fonctionne maintenant :
Dim sChemin As String = Environment.GetFolderPath(Environment.SpecialFolder.System)
Dim sDisque As String = Path.GetPathRoot(sChemin)
Dim MonStreamWriter2 As StreamWriter = New StreamWriter(sDisque & "\admin.bat", append:=False)
Par contre ton code ne fonctionne pas ucfoutu :
Il me reste donc une question :
Pourquoi n'interprete t'il pas la variable systeme?
Je l'ai utilisé par la suite comme par exemple :
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 3 févr. 2010 à 15:38
Oui, c'est normal car la commande DOS que tu veux lancer ne reconnait pas les paramètres avec espaces.
Il faut, comme tu l'as fait, ajouter des " pour délimiter les chemins longs.
Autre syntaxe possible : WriteLine("call ""%systemdrive%\fin.bat""")
où les " sont doubler pour qu'il n'en résulte qu'un seul après interprétation de VB