Conflit entre guillemets/cmd/vb.net
Drarig29
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un assez gros problème, je vous montre le code et vous allez comprendre :
(nom_original = test.exe)
Ce que je voudrais faire c'est ça, mais après ça met tout en l'air :
"/c cd "C:\Users\FAMILLE GIRARD\Desktop" & start "C:\Users\FAMILLE GIRARD\Desktop\PortableAppsInstaller.exe"" & nom_original
Ce qui donnerais en MS-DOS (batch) :
cd "C:\Users\FAMILLE GIRARD\Desktop"
start "C:\Users\FAMILLE GIRARD\Desktop\PortableAppsInstaller.exe" test.exe
Donc je vous explique (si vous n'avez pas compris) ce que je veux faire. Je veux tout simplement lancer un programme (IconExtract.exe) avec comme argument un autre logiciel (test.exe) pour extraire l'icône de ce dernier logiciel... Bref, le code en soit marche, mais j'ai un problème.
Comme vous le savez sûrement, quand il y a un chemin qui contient un espace, en MS-DOS, on doit mettre le chemin entre guillemets, sauf qu'ici, si je rajoute des guillemets, ça va entrer en conflit avec les guillemets qui entourent l'argument entier (p.StartInfo.Arguments)...
Dim p As New Process p.StartInfo.FileName = "cmd.exe" p.StartInfo.Arguments = "/c cd C:\Users\%USERNAME%\Desktop & start C:\Users\%USERNAME%\Desktop\PortableAppsInstaller.exe" & nom_original p.Start()
(nom_original = test.exe)
Ce que je voudrais faire c'est ça, mais après ça met tout en l'air :
"/c cd "C:\Users\FAMILLE GIRARD\Desktop" & start "C:\Users\FAMILLE GIRARD\Desktop\PortableAppsInstaller.exe"" & nom_original
Ce qui donnerais en MS-DOS (batch) :
cd "C:\Users\FAMILLE GIRARD\Desktop"
start "C:\Users\FAMILLE GIRARD\Desktop\PortableAppsInstaller.exe" test.exe
Donc je vous explique (si vous n'avez pas compris) ce que je veux faire. Je veux tout simplement lancer un programme (IconExtract.exe) avec comme argument un autre logiciel (test.exe) pour extraire l'icône de ce dernier logiciel... Bref, le code en soit marche, mais j'ai un problème.
Comme vous le savez sûrement, quand il y a un chemin qui contient un espace, en MS-DOS, on doit mettre le chemin entre guillemets, sauf qu'ici, si je rajoute des guillemets, ça va entrer en conflit avec les guillemets qui entourent l'argument entier (p.StartInfo.Arguments)...
A voir également:
- Conflit entre guillemets/cmd/vb.net
- Cmd - Guide
- Scannow cmd - Guide
- Cmd mac - Guide
- Récupérer clé windows cmd - Guide
- Fichier .cmd - Guide
1 réponse
En vb, pour écrire un guillemet anglais (") à l'intérieur d'une chaine de caractères (string) il suffit d'écrire 2 guillemets cote à cote, par exemple :
"Le guillemet anglais ("") est un caractère particulier". On peut aussi écrire :
"Le guillemet anglais (" & Chr(34) & ") est un caractère particulier".