[Batch]Ajout de fonction Windows

Ajout de fonction Windows [Batch] - Shell/Batch - Programmation

Marsh Posté le 17-08-2009 à 16:43:56    

Bonjour a tous,
 
Alors voila, j'ai un petit problème et j'aimerais bien pouvoir le résoudre  :D  
 
Je monte un serveur avec un ami, et pour cela nous avons besoin de nous créer des .batch
Jusque la pas de problème.
 
Nos .batch on pour fonction de faire redémarrer certain logiciels, mais aussi de supprimer certain fichiers a chaque utilisation du .batch
Et la mes ennuis commence.
 
En effet, la fonction Taskkill et Del (Deltree et RD) ne fonctionne pas sur mon ordinateur. (Je suis sous XP)
En fouillant un peu sur le net, j'ai réussit à trouver une alternative a mon Taskkill, je l'ai remplacé par Tskill et cette fonction marche très bien.
 
Pour la deuxième fonction j'ai beau avoir fouillé sur la toile plusieurs heures, les seul fonctions que j'ai trouvé pour supprimer sont:
 
DEL
DELTREE
ERASE
RD
RMDIR

 
Quand je rentre ses commandes seules dans le cmd, voilà ce que me répond mon vilain ordinateur
 
DEL ==> Syntaxe incorrecte
DEL /? ==> me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : DEL /S /Q "mon chemin d'acces", et rien ne se passe
 
DELTREE ==> Commande non reconnu
DELTREE /? ==> Non reconnu
Quand j'applique la fonction dans mon .batch je rentre : DELTREE /S /Q "mon chemin d'acces", et rien ne se passe
 
ERASE ==> Syntaxe incorrecte
ERASE /? ==> me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : ERASE /S /Q "mon chemin d'acces", et rien ne se passe
 
RD ==> Syntaxe incorrecte
RD /? ==>me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : RD /S /Q "mon chemin d'acces", et rien ne se passe
 
RMDIR ==> Syntaxe incorrecte
RMDIR /? ==>me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : RMDIR /S /Q "mon chemin d'acces", et rien ne se passe
 
 
Alors voila, j'aimerais savoir si il existe d'autre commande, si je devais faire quelque chose de particulier pour utiliser les commandes qui ne fonctionne pas, ou tout simplement si j'avais la possibilité d'apprendre ses commandes a mon ordinateur.
 
Voili Voilou, en tout cas merci d'avoir eu la patience de tout lire.


Message édité par unisa le 17-08-2009 à 17:16:23
Reply

Marsh Posté le 17-08-2009 à 16:43:56   

Reply

Marsh Posté le 17-08-2009 à 18:24:34    

DEL et RMDIR sont en effet les fonctions standard pour supprimer un fichier ou pour supprimer un répertoire.
Il est étonnant que rien ne se passe. Pas même un message d'erreur ?
 
Une source courante de problème vient du chemin qui est donné (par exemple s'il contient des espaces, des caractères spéciaux, est trop long, ou autre). il faudrait essayer avec juste un nom de fichier, puis avec un nom préfixé par un chemin simple.
Une autre source de problème vient des autorisations d'accès.
 
Pour débugguer, il faudrait lancer cette commande en directe, sans la mettre dans un fichier. Cette commande est bien entendu à lancer dans une fenettre dite "console" autrefois appelée fenêtre "MS-DOS".
 
L'autre solution consiste à utiliser un batch de type VBS, qui offre plus de fonctionalités et de souplesse que les batch ".bat" classiques.
 

Reply

Marsh Posté le 17-08-2009 à 20:19:16    

olivthill a écrit :

DEL et RMDIR sont en effet les fonctions standard pour supprimer un fichier ou pour supprimer un répertoire.
Il est étonnant que rien ne se passe. Pas même un message d'erreur ?

 

Nan je n'ai aucun message d'erreur qui s'affiche

 
Citation :


Une source courante de problème vient du chemin qui est donné (par exemple s'il contient des espaces, des caractères spéciaux, est trop long, ou autre). il faudrait essayer avec juste un nom de fichier, puis avec un nom préfixé par un chemin simple.
Une autre source de problème vient des autorisations d'accès.

 

J'ai vérifié, auncun espace ou caractères en trop, et je suis la seul session de l'ordinateur en administrateur

 
Citation :


Pour débugguer, il faudrait lancer cette commande en directe, sans la mettre dans un fichier. Cette commande est bien entendu à lancer dans une fenettre dite "console" autrefois appelée fenêtre "MS-DOS".

 

C'est ce que j'ai expliqué plutôt, en entrant directement les commandes dans la console j'obtenais ca :

 
Citation :


Quand je rentre ses commandes seules dans le cmd, voilà ce que me répond mon vilain ordinateur
 
DEL ==> Syntaxe incorrecte
DEL /? ==> me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : DEL /S /Q "mon chemin d'acces", et rien ne se passe
 
DELTREE ==> Commande non reconnu
DELTREE /? ==> Non reconnu
Quand j'applique la fonction dans mon .batch je rentre : DELTREE /S /Q "mon chemin d'acces", et rien ne se passe
 
ERASE ==> Syntaxe incorrecte
ERASE /? ==> me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : ERASE /S /Q "mon chemin d'acces", et rien ne se passe
 
RD ==> Syntaxe incorrecte
RD /? ==>me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : RD /S /Q "mon chemin d'acces", et rien ne se passe
 
RMDIR ==> Syntaxe incorrecte
RMDIR /? ==>me donne la descritption de la commande avec toutes les sous fonctions
Quand j'applique la fonction dans mon .batch je rentre : RMDIR /S /Q "mon chemin d'acces", et rien ne se passe

 
Citation :


L'autre solution consiste à utiliser un batch de type VBS, qui offre plus de fonctionalités et de souplesse que les batch ".bat" classiques.

 

Par contre pour ca je nécessiterais quelque petites explications car je ne connais pas du tout


Message édité par unisa le 17-08-2009 à 20:19:42
Reply

Marsh Posté le 18-08-2009 à 09:56:48    

Désolé, mais le problème n'est pas clair.
 
Faire DEL tout seul ramène forcément le message précité. Cela n'a aucun sens de faire DEL tout seul. Il faut faire DEL suivi d'un nom de fichier. Quel est donc le paramètre qui est donné à DEL ? Pour faire un test, on peut même faire DIR nom_de_fichier.
 
Je viens de faire un essai avec mon vieux Windows. La commande del a.txt est acceptée. Si je remonte d'un cran dans l'arborescence, la commande del /S test\a.txt est aussi acceptée. Par contre, del /S test/a.txt n'est pas acceptée car le chemin doit contenir "\" au lieu de "/".

Reply

Marsh Posté le 18-08-2009 à 11:47:57    

Oui, pardon je pensais avoir expliqué. En faite voici le contenu de mon fichier

 

Tskill "chemin d'acces"
RD /S /Q chemin d'acces

 


Avant j'avais taskill a la place de tskill. Quand je lançais le .bat rien ne se passais, j'avais juste une console qui s'ouvrait aussi vite qu'elle se refermait. Et le programme qui devait être arrêté ne l'étais pas. Depuis que j'ai remplacé le taskill, la fonction tskill marche, car le programme se ferme bien, par contre le dossier que je veux supprimer ne l'est pas.

 

Je vais essayer de mettre un ping après la deuxième action pour voir ce que la console me dis

 

EDIT: Bon c'est trop bizarre, en faite a chaque fois qu'il tente une commande dans la console, le pc essai toujours de partir du bureau pour effectuer la demande. Par exemple avant d'effectuer tskill il va faire
C://document.....\Bureau>TSkill
pareil pour la suppression du fichier, du coup il trouve que le chemin d'acces est mauvais et je ne peux pas ping


Message édité par unisa le 18-08-2009 à 12:02:36
Reply

Marsh Posté le 19-08-2009 à 11:37:59    

Alors voila, pour pouvoir voir pourquoi cela ne marchais pas, j'ai intégré une commande pause. Et voici ce qu'il me met:

 

A chaque action qu'il doit faire il commence par
C:\Documents and Settings\...\Bureau>

 

C'est a dire que la console écrit:

 

C:\Documents and Settings\...\Bureau>Tskill "..."
C:\Documents and Settings\...\Bureau>DEL /S /Q F:\Program Files\...\Cache
Le fichier spécifié est introuvable
C:\Documents and Settings\...\Bureau>pause

 

Donc voila en faite il dis que le chemin d'accès est mauvais, pourtant j'ai beau avoir retapé a la main et avoir fait copier coller le chemin d'accès donné dans les propriétés du dossier à supprimé, mon pc ne veut rien entendre.

 

EDIT: C'est bon j'ai trouvé, j'ai remplacé DEL par RMDIR et j'ai mis le chemin d'accès entre guillemets


Message édité par unisa le 19-08-2009 à 11:51:06
Reply

Marsh Posté le 19-08-2009 à 15:31:01    

Et voilà, comme je l'avais deviné dès mon premier message, il y a un bel espace dans le chemin : ...Program Files...
Quand il y a un espace, il faut utiliser des guillemets, sinon le programme croit qu'il y a plusieurs paramètres car l'espace est un séparateur de paramètres.
 
La solution est :
DEL /S /Q "F:\Program Files\...\Cache"

Reply

Marsh Posté le 19-08-2009 à 15:54:33    

olivthill a écrit :

Et voilà, comme je l'avais deviné dès mon premier message, il y a un bel espace dans le chemin : ...Program Files...
Quand il y a un espace, il faut utiliser des guillemets, sinon le programme croit qu'il y a plusieurs paramètres car l'espace est un séparateur de paramètres.
 
La solution est :
DEL /S /Q "F:\Program Files\...\Cache"


 
Oui mais tu n'avais pas dis assez clairement pour moi qu'il fallait des guillemets, c'est pour ca que je trouvais le chemin bon

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed