Commandes / .bat / .cmd / sur clé USB

Fermé
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019 - 29 mars 2018 à 10:47
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 - 31 mars 2018 à 13:57
Bon... Le titre n'est pas hyper parlant, alors je m'explique...:

Salut à tous!
Je suis en train de créer une clé USB remplie d'applications portables. Je créé aussi une interface permettant de les organiser sur le bureau (je raccourcie cette partie-là, elle n'est pas importante pour mon problème).
Pour ça, j'ai besoin que ma clé ait une lettre précise sur tous les ordis, j'ai le scripte .cmd qui la change une fois lancée, pas de soucis, il marche.

Maintenant le problème:

Je veux créer un .bat qui:
1: Lance mon fichier "set_letter=X.cmd"
2: Attend 10 secondes
3: Lance l'executable que j'aurai paramétré pour avoir mes applications sur le bureau (en l'occurence, "rainmeter").

Le soucis, c'est qu'en mettant dans le même fichier .bat ces trois demandes à la suite, ma lettre change, pas de soucis, mais après, il ne se passe plus rien.

Je suppose que ça vient du fait que, vu que le chemin change (celui de la clé), cela interrompt la lecture du .bat ...

Donc j'ai pensé quelque chose, mais je ne me connais pas assez en programmation de dos, et je n'y arrive pas. J'essaie de résumer clairement mon idée:


############################################################

setup.cmd:

1: créer "launcher.bat" sur "%current user%\Desktop\launcher.bat"
2: Ecrire dans "%current user%\Desktop\launcher.bat":
.............."attendre 10 secondes
...............lancer X:\rainmeter.exe
...............supprimer "%current user%\Desktop\launcher.bat"
(s'autodétruire, en gros)
3: Lancer "%current user%\Desktop\launcher.bat"
4: Effectuer "set_letter=X"
(pendant que la partie "attendre 10 secondes" de l'autre programme s'exécute:)


############################################################


Je pense être plutôt clair, un premier launcher qui en créé un autre sur le bureau, ce deuxième attendra que le premier ait fini sa tâche avant de faire son boulot et enfin de s' "autodétruire".

Bon, je me prends un peu la tête, je pourrais aussi avoir d'un côté la commande pour changer la lettre (vu que j'ai besoin d'un chemin fixe pour que mes applications se lancent dans rainmeter), et ensuite lancer l'application rainmeter à la main... Mais c'est aussi un petit défi pour moi, même si je patauge...

Bref, en tout cas, merci d'avance à ceux qui prendront le temps de lire tout mon roman, et celui de me répondre!

Bonne journée!
A voir également:

6 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié le 29 mars 2018 à 13:14
Bonjour,

Du coup ce qu'il te manque, c'est d'écrire dans un fichier ?
Essaie ça :
echo attendre 10 secondes > "%current user%\Desktop\launcher.bat"
echo lancer X:\rainmeter.exe >> "%current user%\Desktop\launcher.bat"
echo supprimer "%current user%\Desktop\launcher.bat" >> "%current user%\Desktop\launcher.bat"


Xavier
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
29 mars 2018 à 13:19
(Sur ma machine, ton %current user% serait plutôt %userprofile%)
0
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
29 mars 2018 à 16:01
Alors non, j'ai justement les bons scripts pour ouvrir les fichiers, mais ce qu'il me manque, c'est de quoi créer un. Bat demandant la création du fichier. Cmd et demandant de l'écrire avant de le lancer.
idéalement, j'aimerais aussi savoir si il existe un script que je peux mettre dans le fameux fichier pour lui demander de s'auto-supprimer une fois qu'il aura fait sa tâche...

En gros ce qu'il me manque c'est:

créer un fichier à cet emplacement
Le nommer commande.cmd
Écrir "tels scripts" dedans et le sauvegarder.

Apres je saurais le lancer sans soucis, mais cette partie est au delà de mes compétences...

En tout cas, merci de ta réponse !
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
30 mars 2018 à 10:19
«
créer un fichier à cet emplacement
Le nommer commande.cmd
Écrir "tels scripts" dedans et le sauvegarder.
»

C'est exactement ce que fait le code que je t'ai donné :)
0
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
30 mars 2018 à 19:06
Oui, je n'avais pas pu prendre le temps de regarder en détails, j'étais en cours...
alors si je regarde bien ton script la commande pour attendre... Celle pour lancer et celle pour supprimer... ^^
Je suis curieux, une commende pour supprimer un fichier marche-t-elle sur le fichier qui la lance ?
Et, j'ai peut être mal regardé, mais je ne vois pas la commande demandant l'édition de luncher.bat? "écrit xxxxxxxxxx dans luncher.bat et sauvegarder"?

E' tout cas merci beaucoup, je vais mettre en application demain, j'aurai du temps à y consacrer, voire comment et si ça marche ^^ je te dirais, mais si tu veux bien me dire pour le script d'édition ^^

Bonne soirée !
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié le 30 mars 2018 à 19:17
Pour écrire dans un fichier, la commande c'est
echo (...) > nom_fichier.bat
(ce qui écrase le fichier)
echo (...) >> nom_fichier.bat
(ce qui ajoute à la fin du fichier)

Je n'ai pas mis les autres commandes exactes parce qu'il me semblait que tu les avais et que je n'ai pas vraiment eu le temps de les tester ^^

Pour ce qui est de la suppression sur le fichier en cours d'exécution... J'imagine que ça peut marcher puisque le fichier est chargé en mémoire, mais je te laisse tester et nous répondre ;)
0
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
31 mars 2018 à 12:30
OK, super eh bien j'essaie ce dans la journée et je te tiens au courant
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 915
31 mars 2018 à 13:35
Bonjour,

Plutôt que de changer la lettre de la clé usb, ne serait-il pas plus pratique de la deviner ?

0
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
31 mars 2018 à 13:38
Umhum...? Tu m'intéresses, là ! ^^ expliques ?
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 915 > Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
31 mars 2018 à 13:41
Je pense simplement à une commande qui te donne la lettre de lecteur depuis lequel est exécuté ton script :
echo %~d0
0
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
31 mars 2018 à 13:47
Et ça remplace juste la lettre ?
Il me semblait que cette commande faisait partir du dossier ou se trouve la commande...?

Enfin si c'est la lettre c'est super ! ^^

(bien que j'essaierai quand même l'autre solution aussi, mais ça c'est pour ma curiosité mdr ^^)

Je vais essayer ça taleur en tout cas !
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 915
Modifié le 31 mars 2018 à 13:50
oui c'est juste la lettre de lecteur, si tu veux le chemin en plus, il faut faire comme ceci :
echo %~dp0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
31 mars 2018 à 13:52
Donc en gros

echo %~dp0\dossier de mon programme\mon programme.exe

--
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 915
31 mars 2018 à 13:54
C'est tout à fait ça.
0
Te-Tienne Messages postés 30 Date d'inscription jeudi 3 août 2017 Statut Membre Dernière intervention 28 janvier 2019
31 mars 2018 à 13:55
Class! Ben écoute, merci de l'astuce, je te fais signe dès que j'ai essayé ! ^^

--
0
barnabe0057 Messages postés 14452 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 3 août 2024 4 915
31 mars 2018 à 13:57
Ok ;)
0