Se connecter / S'enregistrer
Votre question

MS-DOS qq problèmes

Tags :
  • Desktop
  • Programmation
Dernière réponse : dans Programmation
1 Octobre 2010 19:24:45

Bonjour bonjour !
Je suis un train de faire un mini projet sous ms-dos et j'ai 2-3 petits problèmes avec certains bout de code ...

Tout d'abord je comprends pas comment utiliser les "chemins relatifs", je veux dire par là que je voudrais que mon prog puisse fonctionner sur d'autres ordis et donc si je veux ouvrir un fichier sur le bureau je ne peux pas mettre "C:/User/cccc/Desktop/", mon C et mon cccc pouvant changer !
Comment faire ? Je me souviens vaguement d'un "%user%" ...

Et ensuite ce code-ci est censé donner le fichier le plus récent créé à un emplacement X, il fonctionne très bien sauf qu'il est obligatoire de renseigner une extension de fichier (dans ce cas-ci .txt), or moi je veux pour tous les types de fichiers ! Le joker ne marche pas ... Que dois-je remplacer ?
  1. for /f "tokens=4* delims= " %%i in ('dir /o:d "C:\Users\cccc\Desktop\*" ^| findstr /i /c:".txt"') do set VrFchRcnt=%%i %%j
  2. echo %VrFchRcnt%



Un pour finir, un autre, celui-ci est censé tester si un répertoire existe et compter les fichiers; sauf que la fenêtre se ferme lorsqu'il est lancé :D 
  1. set VrSource=C:\Users\Janvier\Desktop
  2. For %%a In ("%VrSource%\*.*") Do Set /A Compte+=1
  3. If "%Compte%"=="" Set Compte=Pas de
  4. echo ==^> %Compte% nouveaux fichiers pour [ emule ]
  5. For /f "delims=" %%a in ('dir "%VrSource%" /b') do (
  6. If %%a neq "" echo | & for /R %VrSource% %%i in (*.*) do echo %%~nxi &
  7. )




Voilà, merci pour votre aide :) 
Je suis sous Vista home premium

Autres pages sur : dos problemes

1 Octobre 2010 20:50:27

Pour ta p1ere question je ne saurais pas te dire.

Pour la 2eme comment tu exécute le script ? Tu double clic sur ton fichier pour l'ouvrir ?
Si c'est le cas c'est normal. Il faut l'executer en ligne de commande.
Démarrer > Executer > cmd
et à partir de la tu accede à ton script
m
0
l
1 Octobre 2010 21:24:48

Oui je double clique pour l'ouvrir, il n'y a pas moyen de fonctionner comme ça ??
merci
m
0
l
Contenus similaires
1 Octobre 2010 21:47:23

à priori non ce n'es pas possible en exécutant directement le fichier.
m
0
l
1 Octobre 2010 21:49:36

Tu parles du premier ou deuxième code ? :) 
m
0
l
1 Octobre 2010 23:25:10

du 2eme
m
0
l
3 Octobre 2010 13:20:35

Bon tant pis alors (marche pas non plus avec l'invite de commande),
et pour mes deux autres questions qui peut m'aider ? :) 

merci
m
0
l
a b L Programmation
3 Octobre 2010 19:07:34

Citation :
Tout d'abord je comprends pas comment utiliser les "chemins relatifs", je veux dire par là que je voudrais que mon prog puisse fonctionner sur d'autres ordis et donc si je veux ouvrir un fichier sur le bureau je ne peux pas mettre "C:/User/cccc/Desktop/", mon C et mon cccc pouvant changer !
Comment faire ? Je me souviens vaguement d'un "%user%" ...

Tu tapes un simple SET dans une console et tu vois la liste de toutes les variables système.
Tu peux utiliser %USERPROFILE%\Desktop\

Citation :
Et ensuite ce code-ci est censé donner le fichier le plus récent créé à un emplacement X, il fonctionne très bien sauf qu'il est obligatoire de renseigner une extension de fichier (dans ce cas-ci .txt), or moi je veux pour tous les types de fichiers ! Le joker ne marche pas ... Que dois-je remplacer ?

Et pourquoi ne pas faire un simpe DIR /B?

Citation :
Un pour finir, un autre, celui-ci est censé tester si un répertoire existe et compter les fichiers; sauf que la fenêtre se ferme lorsqu'il est lancé

Ajoute la commande PAUSE
m
0
l
5 Octobre 2010 17:01:35

Salut, merci pour tes réponses !

CRicky a dit :

Tu tapes un simple SET dans une console et tu vois la liste de toutes les variables système.
Tu peux utiliser %USERPROFILE%\Desktop\


Merci ça marche à merveille !

CRicky a dit :
Et pourquoi ne pas faire un simpe DIR /B?


Heu là par contre je suis déjà largué je comprends déjà pas grand chose dans cette commande ...
J'ai essayé comme ça, il y a un problème avec la commande findstr (sans /c = commande incorrect et avec ben j'ai essayé /c "." là ça marche mais je n'ai que le dernier mot du fichier ....):
  1. @echo off
  2. echo Le dernier fichier créé sur ton bureau est:
  3. for /f "tokens=4* delims= " %%i in ('dir /b /o:d "%USERPROFILE%\Desktop\*" ^| findstr /i') do set VrFchRcnt=%%i %%j
  4. pause


CRicky a dit :
Ajoute la commande PAUSE


Oui ça j'avais déjà essayé bien sûr ! :p  apparement il y a autre chose qui l'empêche de fonctionner correctement ...


Merci pour tes réponses CRicky ;) 
m
0
l
a b L Programmation
5 Octobre 2010 20:08:45

Citation :
Heu là par contre je suis déjà largué je comprends déjà pas grand chose dans cette commande ...
J'ai essayé comme ça, il y a un problème avec la commande findstr (sans /c = commande incorrect et avec ben j'ai essayé /c "." là ça marche mais je n'ai que le dernier mot du fichier ....):

En fait, tu enlèves le findstr, tu as directement la liste des fichiers: ... in ('dir /b /o: d "%USERPROFILE%\Desktop\*"') do ...
Ensuite, si tu ne veut lister que les fichiers (et pas pas les répertoires), ajoute un /A:-d
Enfin, si tu veux que ce soit récursif (liste les fichiers des sous-répertoire, ajoute un /S

Normalement, le Pause doit te faire la pause. Est-ce que tu ne quittes pas avant, est-ce que ça fonctionne dans une console dos ?
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS