[MS-DOS]Commandes pour lister les lecteurs d'un ordinateur

Répondre
Partager Rechercher
Bonjour,

Mon portable ne boot plus.
J'ai un message m'indiquant qu'il ne trouve pas le disque. (pas de disquette, CD ou clé USB branché au moment du boot)

J'ai donc booté sous MS-DOS 6.22 avec une disquette.
Afin de vérifier une hypothèse (la mort du disque dur et donc du portable), j'aurais voulu savoir si il y a une commande MS-DOS permettant de lister l'ensemble des lecteurs (ou disque durs) présent sur un ordinateur ?

Merci d'avance.

NB : la commande c: m'a retourné 'disque invalide'.
Citation :
(la mort du disque dur et donc du portable)

Tu pourrais te servir d'un "livecd". Tu auras plus d outils de maintenance qu' avec une disquette msdos.
(comme SystemRescueCd ou ultimatebootcd)

Et tu pourras utiliser ton portable pour les taches habituelles (internet, bureautique,chat...), le temps que tu répares ton dique dur.

http://fr.wikipedia.org/wiki/LiveCD
Personnelement, je ne dis pas non.

Maintenant, tu essaies de convaincre ma femme que c'est une bonne solution ?

Pour la réponse à ma question du dessus, le fdisk indique 5718MBytes donc trop gros pour être une disquette, donc c'est le disque dur.

Une idée pour trouver son petit nom pour y accéder ? (Sachant que je viens de faire toutes les lettres de l'alphabet)
je ne disai pas d'installer linux einh
c'est juste que ce programme boot sous linux, lance automatiquement un programme avec interface graphique afin de voir tes disk et leur partitions.

a mon avis, si tu as essayé toute les lettre de l'alphabet, c'est que la partition a du sauter ( ou est inacessible )

Et dans un tel cas, tu risque de devoir tout reformatter pour recreer la partition ( ou trouver quelque chose afin de la reparer... mais ca risque d'etre chaud )
Livecd= utiliser un système sans avoir/utiliser de disque dur. Tu boot sur le cd et tu as accès à un système complet.

Je t avais suggéré cela puisque tes partitions ont sauté.
Avec des livecds spécialisés en maintenance matériel , tu répares ton disque dur.

Et avec des livecds plus généralistes , tu pourras aller sur internet ,faire de la bureautique , sans disque dur .
Citation :
Publié par harermuir
Tant qu'on est dans les commandes dos ...

Y a moyen, dans un batch, de changer le volume actif ? un "d:", par exemple, m'indique que la commande n'est pas connu ...
tu entends quoi par volume actif ? Changer le mbr ?
Citation :
Publié par Rosenrot
tu entends quoi par volume actif ? Changer le mbr ?

J'ai un programme qui s'appelle "machin.exe". Il est situé à la racine du volume d:

Si dans mon batch je met

Code:
d:
machin
Il ne lancera pas "machin.exe", parce qu'il ne réussira pas à changer de volume actif.

Si dans mon batch je met
Code:
d:\machin.exe
Il va lancer le programme machin.exe, mais pas dans le bon emplacement. Et pour peu que machin.exe ait besoin de fichier qui soient rangé avec lui pour fonctionner, bah il ne va pas apprécier.

Donc, non, rien à voir avec le MBR
Citation :
Publié par harermuir
J'ai un programme qui s'appelle "machin.exe". Il est situé à la racine du volume d:

Si dans mon batch je met

Code:
  d:
  machin
Il ne lancera pas "machin.exe", parce qu'il ne réussira pas à changer de volume actif.

Si dans mon batch je met
Code:
  d:\machin.exe
Il va lancer le programme machin.exe, mais pas dans le bon emplacement. Et pour peu que machin.exe ait besoin de fichier qui soient rangé avec lui pour fonctionner, bah il ne va pas apprécier.

Donc, non, rien à voir avec le MBR
Et si tu met :
d:\machine.exe /path:<repertoire de travail>?

L'autre méthode c'est de le coller en registre, pour pouvoir l'appeler simplement via cmd : machin.
Je dois avoir ça dans mes notes si t'en a besoin ,faut juste que je mette la main dessus
marrante cette question, car j'ai beau chercher, je trouve pas.

par contre tu pourrai utiliser le tricks suivant

mkdir d:\test
cd d:\test
cd..
rmdir d:\test
call machin.exe

bon ok, j'admet que c'est un vilain tricks, mais j'ai pas mieux
Tu peux ajouter le chemin de ton programme au chemin existant.

Dans un fichier de commandes ou en mode console avec path. Pour l'aide sur cette commande : path /?

path %path%;[Chemin_de_machin.exe_à_ajouter]
machin.exe


Sinon tu peux aussi modifier le chemin dans les variables d'environnement, onglet avancé des propriétés du poste de travail.
__________________
Il est possible que je dise des âneries...
Paice > d: n'est pas reconnu comme command shell quand il est dans le batch. Ne me demande pas pourquoi, ca reste très mystérieux. Sous vrai DOS, j'imagine que ca marche. Avec l'interpreteur de windows 2000, par contre, ca merdouille.



Citation :
Publié par Wanna

bon ok, j'admet que c'est un vilain tricks, mais j'ai pas mieux
Ca ne marche pas surtout. Le CD change juste le répertoire actif sur un volume, et pas le volume actif. Quand tu fais cd d:/truc alors que tu es en c:/, tu restes en c:/ . Par contre, si tu tappes d: après, il va t'envoyer directement en d:/truc .

Pour au dessus : j'aimerai bien éviter de mettre n'importe quoi dans mon path

J'essaie la proposition de Rosenrot et je vous tiens au courrant.
Edit : ca n'a pas l'air de fonctionner.
Citation :
Publié par Assiobal
J'ai donc booté sous MS-DOS 6.22 avec une disquette.
(...)
NB : la commande c: m'a retourné 'disque invalide'.
Si tu es sous windows xp, il y a de fortes chances que la partition soit au format ntfs, donc non connu et encore moins géré par dos 6.x.
Dans tous les cas tu auras disque invalide.
En ce qui concerne fdisk, l'information "fixed disk" correspond à disque fixe, sous entendu disque dur, à l'opposé de "removable disk" qui concerne les disquettes ou disques temporaires.

Vu le problème et la forte probabilité que ton disque soit en ntfs, comme conseillé il vaut mieux que tu passes par autre chose que dos.

Citation :
Publié par harermuir
Y a moyen, dans un batch, de changer le volume actif ? un "d:", par exemple, m'indique que la commande n'est pas connu ...

la commande <lettre>: (sans les <>) est celle utilisée par ms-dos et la ligne de commande de windows pour changer le disque en cours. Si tu as le message "la commande n'est pas reconnue" (ou similaire), je commencerai à m'inquiéter de l'intégrité de ton interpréteur de commande.
Si le message est différent, reli le correctement.

Une exception qui n'est pas forcément cohérente avec le message d'erreur, c'est dans le cas d'un disque dont la racine (ou le répertoire en cours de l'unité en question) est restreinte par des droits d'accès. Jette un oeil sur les autorisations, à tout hasard, ainsi que dans les paramètres présents dans :
hkcu et hklm \Software\Microsoft\Command Processor
normalement tu as 3-4 paramètres qui se battent en duel, sans arborescence.


edit :
pour ta commande :
start /b /d "chemin" tonfichier.exe
Chemin correspond au répertoire de travail.
Rajoute /wait dans les paramètres de début si tu veux attendre que l'exécution se termine, vu que start lance un nouveau process indépendant
Citation :
Publié par harermuir
Paice >
Ca ne marche pas surtout. Le CD change juste le répertoire actif sur un volume, et pas le volume actif. Quand tu fais cd d:/truc alors que tu es en c:/, tu restes en c:/ . Par contre, si tu tappes d: après, il va t'envoyer directement en d:/truc .
Effectivement, ça ne fonctionne pas directement, par contre essaie :
cd /d d:\
Je ne sais pas si cette option existait déjà sous 2000 (je n'en ai pas sous la main) mais sous XP, ça permet de changer de lecteur en même temps que de répertoire, et pourrait te permettre de contourner ton problème.

Autre chose, ton fichier batch, c'est un .bat ou un .cmd ? Théoriquement, suivant l'extension, il ne lance pas le même interpréteur de commandes (command.com ou cmd.exe). Cela pourrait expliquer la différence de comportement entre la ligne de commande et le fichier. Mais reste qu'effectivement, il semble y a voir un souci avec ton interpréteur d commandes.
Citation :
Publié par Nenaal Llaenaan
Effectivement, ça ne fonctionne pas directement, par contre essaie :
cd /d d:\
Je ne sais pas si cette option existait déjà sous 2000 (je n'en ai pas sous la main) mais sous XP, ça permet de changer de lecteur en même temps que de répertoire, et pourrait te permettre de contourner ton problème.
Gagné ... Ca marche parfaitement. Merci beaucoup.

Citation :
Autre chose, ton fichier batch, c'est un .bat ou un .cmd ? Théoriquement, suivant l'extension, il ne lance pas le même interpréteur de commandes (command.com ou cmd.exe). Cela pourrait expliquer la différence de comportement entre la ligne de commande et le fichier. Mais reste qu'effectivement, il semble y a voir un souci avec ton interpréteur d commandes.
C'est un .bat. Si je change l'extension, il plante (c'est pas censé être compilé un .cmd ?). Dans tous les cas, quelque soit l'interpréteur que je lance, le comportement est "normal". Quand je tape d:, il change bien de volume actif. C'est juste quand la commande est lancé depuis un fichier batch que ca plantouille ... Allez comprendre.

Autre question. Je veux, toujours dans un batch, que le fichier passé en paramètre soit copié, et qu'ensuite la copie soit passé en paramètre à un autre programme.


Ex, j'ai un programme modif.exe qui modifie un fichier texte.
Je veux que quand je tappe la commande c:\batch.bat "c:\toto.txt" , le fichier toto.txt soit automatiquemetn copié dans le répertoire c:\temp, puis que la copie dans c:\temp soit traité par le programme modif.exe. Comme a la fin, je veux que ce soit windows qui passe le paramètre (par double clic ouvrir avec), j'ai pas à priori trop de lattitude quand à la manière dont je passe le paramètre.
Citation :
Publié par harermuir
Paice > d: n'est pas reconnu comme command shell quand il est dans le batch. Ne me demande pas pourquoi, ca reste très mystérieux. Sous vrai DOS, j'imagine que ca marche. Avec l'interpreteur de windows 2000, par contre, ca merdouille.
Ben euh je viens d'essayer sur un W2K et sur un XP et ça fonctionne, pour tous les deux, avec un toto.bat si je fais (j'ai fait les pause pour faire des break au fur et a mesure...

pause
c:
pause
d:
pause

en sortie du batch je suis dans D:

Euh ton batch il est lancé par quel biais et avec quels droits ?
Citation :
Publié par Paice

Euh ton batch il est lancé par quel biais
C'est cmd.exe qui ait lancé (celui situé dans system32). Il est lancé soit par double clic, soit par cliquer/deposer de fichier dessus, soit par association de type de fichier avec l'explorer, ca ne change rien.

Citation :
et avec quels droits ?
Utilisateurs sans pouvoir. Ce qui est étrange, c'est que le même interpréteur lancé avec les mêmes droits permet de le faire fonctioner. Enfin, je n'arrive plus à reproduire le bug là ... Allez comprendre.
Citation :
Publié par harermuir
Autre question. Je veux, toujours dans un batch, que le fichier passé en paramètre soit copié, et qu'ensuite la copie soit passé en paramètre à un autre programme.


Ex, j'ai un programme modif.exe qui modifie un fichier texte.
Je veux que quand je tappe la commande c:\batch.bat "c:\toto.txt" , le fichier toto.txt soit automatiquemetn copié dans le répertoire c:\temp, puis que la copie dans c:\temp soit traité par le programme modif.exe. Comme a la fin, je veux que ce soit windows qui passe le paramètre (par double clic ouvrir avec), j'ai pas à priori trop de lattitude quand à la manière dont je passe le paramètre.
Donc si je comprends bien, tu n'as pas le choix, on ne peut passer qu'un paramètre, et il contient le chemin complet ?
Citation :
Publié par Nenaal Llaenaan
Donc si je comprends bien, tu n'as pas le choix, on ne peut passer qu'un paramètre, et il contient le chemin complet ?
Voila, oui, exactement.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés