.BAT : Supprimer dossier Menu démarrer de XP

micromega Messages postés 141 Statut Membre -  
 Micromega -
Bonjour à tous,

J'essaye de créer un code .bat pour supprimer un dossier et son contenu, présent dans le menu démarrer de Windows.
Pour cela j'ai déjà ce code là :

@echo off
rd /s /q "%ALLUSERSPROFILE%\Start Menu\Programs\Test"

Mais cela ne fonctionne uniquement sur Windows 7, dès que j'essaye sur Windows XP, l'adresse est mauvaise. J'ai eu beau tester et chercher la solution quelque part, j'ai rien trouvé qui ne fonctionne.

Si quelqu'un peu m'aider à résoudre ce problème....

Merci à vous.
A voir également:

5 réponses

dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
hello
sur XP en français, c'est
rd /s /q "%ALLUSERSPROFILE%\Menu Démarrer\Programs"
0
micromega
 
Bonjour dubcek,

J'ai trouvé la solution :
rd /s /q "%ALLUSERSPROFILE%\Menu D'marrer\Programmes\Test" > WinXP
rd /s /q "%ALLUSERSPROFILE%\Start Menu\Programs\Test" > Win7

En faite il faut remplacer l'accent du "Menu Démarrer" par la combinaison "Alt"+"0130". Sinon rien y fait.

Bon cependant je rencontre un nouveau problème ave ma commande :

@echo off
call "test1.exe"
/wait
call "test2.exe"

Elle fonctionne très bien lorsqu'elle est sur le disque dur; cependant dès que j'exécute mon test à partir d'un CD, la seconde ligne : call "test2.exe"
ne fonctionne pas (pass d'éxécution).
Cela est certainement dû au fait que la commande est éxécuté à partir d'un lecteur CD.

En cherchant sur le net j'ai trouvé des trucs comme : start "essai" %CDROM%/
Mais j'ai beau les utiliser dans tous les sens rien ne se passe.

Quelqu'un aurait-il la solution à mon problème ?

Merci encore.
0
dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
que signifire le /wait ?
et sans les call ?
elles doivent s'exécuter l'une après l'autre ?
0
micromega
 
Le "/wait" signifie que "test2.exe" ne s'exécute que lorsque "test1.exe" est fini. Elles doivent donc s'exécuter l'une après l'autre.

"Test 1.exe" installation et attente de fin (/wait), lancer "test2.exe" ensuite.

Cela marche lorsque je clique sur le Bat de mon bureau, mais le même dans un CD, il ne m'éxécute pas le "Test2.exe".

Pas d'idées à propos de l'éxécution de .bat à partir d'un cd ?

Merci
0
dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
/wait est une option de start non ?
essayer en précisant le chemin des test.exe : C:\chemin\test.exe
0
Utilisateur anonyme
 
Salut l'ami :)

Bon cependant je rencontre un nouveau problème ave ma commande :
@echo off  
call "test1.exe"  
/wait  
call "test2.exe" 


normal que tu n'y arrives pas ;)

=> la commande call "test1.exe" marche, si tu es dans le bon dossier
=> idem pour call "test2.exe"

si tu veux vraiment utilise cette ligne de commande ( call "test1.exe" ), il faut que tu te places sur le bon dossier, en utilisant la commande CD.

Ou alors, tu mets le chemin complet.

==> Exemple :

@echo off  
CD c:\windows  
call notepad.exe  
call write.exe


ou

@echo off  
call c:\windows\notepad.exe  
call c:\windows\write.exe


================

Pourquoi mettre un wait ?

La commande Call permet de lancer un fichier, en interrompant le script, jusqu'à la "fermeture" de ce fichier.
Une fois le fichier fermé,
le script continue sa lancée...

Un wait est donc inutile ;)

++
0
micromega
 
Bonjour,

Merci à vous tous pour vos commentaires et vos aides.

Pour construire des .bat je fais beaucoup de recherches et de tests. C'est pour cela que je ponds des trucs un peu bizaroïdes des fois. Mais tant que cela fonctionne, ça me va ! =D

Captain Tsubasa, je comprends ton exemple merci.
Mais comment faire lorsque le dossier des fichiers à lancer est dans un lecteur qui peut changer de lettre. En effet, selon le PC, le lecteur CD peut avoir une lettre différente : e/: f/: k/: ..... ?

Faut-il utiliser %CDROM% ? :

@echo off
call %CDROM%\dossier\test1.exe
call %CDROM%\dossier\test2.exe

Merci encore
0
Utilisateur anonyme
 
Salut :)

Faut-il utiliser %CDROM%

Hélas, non, cette variable d'environnement, %CDROM% n'existe pas (sur mon seven)


Mais attend, et si tu demandais la lettre du cdrom à l'utilisateur ?


Comme ceci :
@echo off 
cls 
echo Quel est la lettre du CDROM ? 
set /p lettre= 
"%lettre%:\dossier\test1.exe " 
pause



++
0
Micromega
 
Bonjour capitaine Tsubasa,

J'ai essayer la dernière commande qui tu m'as donnée, mais je suis navré cela ne fonctionne pas.
On me demande bien la lettre du lecteur mais rien ne se passe.
Je continue mes recherches si tu as d'autres idées...

Merci !
0

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

Posez votre question
dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
ce script détecte le lecteur associé au cdrom : http://www.robvanderwoude.com/files/getcdromdrivesxp_xp.txt
0
Micromega
 
Bonjour dubcek,

Comment utiliser ce script dans mon cas ?

Merci
0
dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
oublier le script précédent, essayer celui ci.
la variable %%k contient la lettre du lecteur cd-rom, mettre le code là, entre ()
@echo off 
set d=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
for %%a in (%d%) do ( 
 for /F "tokens=1" %%k in ('fsutil fsinfo drivetype %%a: ^| findstr "CD-ROM"') do ( 
    echo %%k 
     )  
) 
0
micromega Messages postés 141 Statut Membre 1
 
Merci dubcek de t'acharner à m'aider.

Je vais essayer la dernier script que tu viens de m'envoyer, juste pour savoir ; lorsque tu parle d'ajouter mon code cela équivaut à :

@echo off
set d=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
for %%a in (%d%) do (
for /F "tokens=1" %%k in ('fsutil fsinfo drivetype %%a: ^| findstr "CD-ROM"') do (
echo %%k
(call "test.exe")
(call "test2.ese")
)
)

C'est comme cela que je dois insérer mon code ?

Merci.
0
dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
comme ça
@echo off
set d=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
for %%a in (%d%) do (
  for /F "tokens=1" %%k in ('fsutil fsinfo drivetype %%a: ^| findstr "CD-ROM"') do (
    call %%k\dossier\test1.exe
    call %%k\dossier\test2.exe
  )
) 
0
micromega
 
Bonjour,

Désolé pour le temps de réponse, je n'avais pas eu le temps de me remettre les mains dans la commande.
J'ai donc essayé la commande que tu as créé Dubcek, et cela semble fonctionner à merveille !
Il faut bien penser à écrire toute l'arbre du fichier à lancer depuis la racine.

Cependant, dans notre exemple, j'aurais besoin que "test2.exe" ne se lance que lorsque "test1.exe" est fini.

Je pensais utiliser la commande "/wait" mais apparement cela ne fonctionne pas (déjà mentionné plus haut et également essayé).

Comment puis-je créer cette attente ?

Après cela je pense que tout sera bon.

Merci encore
0