lancement d'un batch par le menu contextuel (avec des espaces dans le chemin)
17 réponses
g.bon
Bonjour,
J'utilise depuis longtemps des petits batchs lancés par le menu contextuel
qui créent un certain nombre de répertoire.
Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:\windows, il me crée les dossiers dans ce répertoire,
ça fonctionne.
Si je le lance dans "c:\program files", il tente de s'executer dans
c:\program
Voici ce que j'ajoute au registre :
[HKEY_CLASSES_ROOT\Folder\shell\crearep_dh]
@="crearep_dh"
[HKEY_CLASSES_ROOT\Folder\shell\crearep_dh\command]
@="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué au
premier espace.
-- bitwyse [PGP KeyID 0xA79C8F2C] http://www.le-maquis.net C'est comme au CNRS: des chercheurs qui cherchent on en trouve mais des chercheurs qui trouvent on en cherche.
g.bon a écrit :
@="cmd.exe /k crearep_dh.cmd %1"
Et si tu mettais
"cmd.exe /k crearep_dh.cmd" "%1"
--
bitwyse [PGP KeyID 0xA79C8F2C]
http://www.le-maquis.net
C'est comme au CNRS: des chercheurs qui cherchent on en trouve
mais des chercheurs qui trouvent on en cherche.
-- bitwyse [PGP KeyID 0xA79C8F2C] http://www.le-maquis.net C'est comme au CNRS: des chercheurs qui cherchent on en trouve mais des chercheurs qui trouvent on en cherche.
Lou Ravi
g.bon wrote:
Bonjour,
J'utilise depuis longtemps des petits batchs lancés par le menu contextuel qui créent un certain nombre de répertoire. Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:windows, il me crée les dossiers dans ce répertoire, ça fonctionne. Si je le lance dans "c:program files", il tente de s'executer dans c:program
Voici ce que j'ajoute au registre : [HKEY_CLASSES_ROOTFoldershellcrearep_dh] @="crearep_dh" [HKEY_CLASSES_ROOTFoldershellcrearep_dhcommand] @="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué au premier espace.
Savez-vous comment remédier à cela ?
Sans être certain, je dirais que c'est une histoire de nombre de caractères acceptables, ou leur forme. Essaie de mettre le nom des dossiers entre guillemets.
g.bon wrote:
Bonjour,
J'utilise depuis longtemps des petits batchs lancés par le menu
contextuel qui créent un certain nombre de répertoire.
Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:windows, il me crée les dossiers dans ce
répertoire, ça fonctionne.
Si je le lance dans "c:program files", il tente de s'executer dans
c:program
Voici ce que j'ajoute au registre :
[HKEY_CLASSES_ROOTFoldershellcrearep_dh]
@="crearep_dh"
[HKEY_CLASSES_ROOTFoldershellcrearep_dhcommand]
@="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué
au premier espace.
Savez-vous comment remédier à cela ?
Sans être certain, je dirais que c'est une histoire de nombre de caractères
acceptables, ou leur forme. Essaie de mettre le nom des dossiers entre
guillemets.
J'utilise depuis longtemps des petits batchs lancés par le menu contextuel qui créent un certain nombre de répertoire. Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:windows, il me crée les dossiers dans ce répertoire, ça fonctionne. Si je le lance dans "c:program files", il tente de s'executer dans c:program
Voici ce que j'ajoute au registre : [HKEY_CLASSES_ROOTFoldershellcrearep_dh] @="crearep_dh" [HKEY_CLASSES_ROOTFoldershellcrearep_dhcommand] @="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué au premier espace.
Savez-vous comment remédier à cela ?
Sans être certain, je dirais que c'est une histoire de nombre de caractères acceptables, ou leur forme. Essaie de mettre le nom des dossiers entre guillemets.
g.bon
> Et si tu mettais "cmd.exe /k crearep_dh.cmd" "%1"
Merci, je viens d'essayer... c'est pas mieux.
> Et si tu mettais
"cmd.exe /k crearep_dh.cmd" "%1"
> Et si tu mettais "cmd.exe /k crearep_dh.cmd" "%1"
Merci, je viens d'essayer... c'est pas mieux.
g.bon
Sans être certain, je dirais que c'est une histoire de nombre de caractères
acceptables, ou leur forme. Essaie de mettre le nom des dossiers entre guillemets.
Ca n'est pas vraiment le nombre de caractères, si je remplace les espaces par des x, underscores ou ce qu'on veut, ça marche. Pour les guillements, j'en avais "l'intuition" mais j'ai essayé pas mal de choses et pas de résultat.
Merci, GB
Sans être certain, je dirais que c'est une histoire de nombre de caractères
acceptables, ou leur forme. Essaie de mettre le nom des dossiers entre
guillemets.
Ca n'est pas vraiment le nombre de caractères, si je remplace les espaces
par des x, underscores ou ce qu'on veut, ça marche.
Pour les guillements, j'en avais "l'intuition" mais j'ai essayé pas mal de
choses et pas de résultat.
Sans être certain, je dirais que c'est une histoire de nombre de caractères
acceptables, ou leur forme. Essaie de mettre le nom des dossiers entre guillemets.
Ca n'est pas vraiment le nombre de caractères, si je remplace les espaces par des x, underscores ou ce qu'on veut, ça marche. Pour les guillements, j'en avais "l'intuition" mais j'ai essayé pas mal de choses et pas de résultat.
Merci, GB
CriCri
g.bon a écrit :
Merci, je viens d'essayer... c'est pas mieux.
On peut prendre connaissance du contenu de ton "crearep_dh.cmd"?
Si ce n'est pas top-secret il serait plus facile de l'essayer que de deviner ;-)
Cdlt CC
-- bitwyse [PGP KeyID 0xA79C8F2C] http://www.le-maquis.net C'est comme au CNRS: des chercheurs qui cherchent on en trouve mais des chercheurs qui trouvent on en cherche.
g.bon a écrit :
Merci, je viens d'essayer... c'est pas mieux.
On peut prendre connaissance du contenu de ton "crearep_dh.cmd"?
Si ce n'est pas top-secret il serait plus facile de l'essayer que de
deviner ;-)
Cdlt
CC
--
bitwyse [PGP KeyID 0xA79C8F2C]
http://www.le-maquis.net
C'est comme au CNRS: des chercheurs qui cherchent on en trouve
mais des chercheurs qui trouvent on en cherche.
On peut prendre connaissance du contenu de ton "crearep_dh.cmd"?
Si ce n'est pas top-secret il serait plus facile de l'essayer que de deviner ;-)
Cdlt CC
-- bitwyse [PGP KeyID 0xA79C8F2C] http://www.le-maquis.net C'est comme au CNRS: des chercheurs qui cherchent on en trouve mais des chercheurs qui trouvent on en cherche.
g.bon
> On peut prendre connaissance du contenu de ton "crearep_dh.cmd"?
Si ce n'est pas top-secret il serait plus facile de l'essayer que de deviner ;-)
Bien-sûr, ca n'a rien de secret mais j'ai peur que ça ne soit pas très utile.
J'ai mis en première ligne "echo %1" et dès ce moment la ligne affichée n'est pas complète (arrêt au premier espace). Le reste du script n'a rien de spécial et il marche sans espace dans le chemin :
dans cet exemple, je crée un dossier dont le nom est l'année le mois, le jours, l'heure et les minutes.
A+ GB
> On peut prendre connaissance du contenu de ton "crearep_dh.cmd"?
Si ce n'est pas top-secret il serait plus facile de l'essayer que de
deviner ;-)
Bien-sûr, ca n'a rien de secret mais j'ai peur que ça ne soit pas très
utile.
J'ai mis en première ligne "echo %1" et dès ce moment la ligne affichée
n'est pas complète (arrêt au premier espace).
Le reste du script n'a rien de spécial et il marche sans espace dans le
chemin :
> On peut prendre connaissance du contenu de ton "crearep_dh.cmd"?
Si ce n'est pas top-secret il serait plus facile de l'essayer que de deviner ;-)
Bien-sûr, ca n'a rien de secret mais j'ai peur que ça ne soit pas très utile.
J'ai mis en première ligne "echo %1" et dès ce moment la ligne affichée n'est pas complète (arrêt au premier espace). Le reste du script n'a rien de spécial et il marche sans espace dans le chemin :
> Tu peux pas remplacer le batch par un peu de code en n'importe quoi ? Après tout :
Je pourrais surement si je savais... ça n'est pas mon cas.
Je ne maitrise pas de language qui me permette de faire ça, même si c'est peut-être trivial.
GB
LeLapin
g.bon a tapoté du bout de ses petites papattes :
Tu peux pas remplacer le batch par un peu de code en n'importe quoi ? Après tout :
Je pourrais surement si je savais... ça n'est pas mon cas.
Je ne maitrise pas de language qui me permette de faire ça, même si c'est peut-être trivial.
Est-ce que ce tuto pourrait t'aider ? Attention il y a des trucs dans le menu à gauche. En tous cas ça parle des batches pour XP et Vista. http://commandwindows.com/batch.htm
-- LeLapin
g.bon a tapoté du bout de ses petites papattes :
Tu peux pas remplacer le batch par un peu de code en n'importe quoi ?
Après tout :
Je pourrais surement si je savais...
ça n'est pas mon cas.
Je ne maitrise pas de language qui me permette de faire ça, même si c'est
peut-être trivial.
Est-ce que ce tuto pourrait t'aider ? Attention il y a des trucs dans
le menu à gauche. En tous cas ça parle des batches pour XP et Vista.
http://commandwindows.com/batch.htm
Tu peux pas remplacer le batch par un peu de code en n'importe quoi ? Après tout :
Je pourrais surement si je savais... ça n'est pas mon cas.
Je ne maitrise pas de language qui me permette de faire ça, même si c'est peut-être trivial.
Est-ce que ce tuto pourrait t'aider ? Attention il y a des trucs dans le menu à gauche. En tous cas ça parle des batches pour XP et Vista. http://commandwindows.com/batch.htm
-- LeLapin
Pierre Maurette
g.bon, le 05/01/2010 a écrit :
Bonjour,
J'utilise depuis longtemps des petits batchs lancés par le menu contextuel qui créent un certain nombre de répertoire. Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:windows, il me crée les dossiers dans ce répertoire, ça fonctionne. Si je le lance dans "c:program files", il tente de s'executer dans c:program
Voici ce que j'ajoute au registre : [HKEY_CLASSES_ROOTFoldershellcrearep_dh] @="crearep_dh" [HKEY_CLASSES_ROOTFoldershellcrearep_dhcommand] @="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué au premier espace.
Le premier est la mise entre guillemets du second, et les " sont des guillemets échappés parce qu'eux-mêmes entre guillemets.
-- Pierre Maurette
g.bon, le 05/01/2010 a écrit :
Bonjour,
J'utilise depuis longtemps des petits batchs lancés par le menu contextuel
qui créent un certain nombre de répertoire.
Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:windows, il me crée les dossiers dans ce répertoire,
ça fonctionne.
Si je le lance dans "c:program files", il tente de s'executer dans
c:program
Voici ce que j'ajoute au registre :
[HKEY_CLASSES_ROOTFoldershellcrearep_dh]
@="crearep_dh"
[HKEY_CLASSES_ROOTFoldershellcrearep_dhcommand]
@="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué au
premier espace.
J'utilise depuis longtemps des petits batchs lancés par le menu contextuel qui créent un certain nombre de répertoire. Ceci ne marche pas lorsque le chemin comprend un espace.
Si je le lance dans c:windows, il me crée les dossiers dans ce répertoire, ça fonctionne. Si je le lance dans "c:program files", il tente de s'executer dans c:program
Voici ce que j'ajoute au registre : [HKEY_CLASSES_ROOTFoldershellcrearep_dh] @="crearep_dh" [HKEY_CLASSES_ROOTFoldershellcrearep_dhcommand] @="cmd.exe /k crearep_dh.cmd %1"
Le %1 que je récupère dans mon batch est le début du chemin, tronqué au premier espace.