Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2984 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch]Ajout de fonction Windows

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch]Ajout de fonction Windows

n°1915888
unisa
Posté le 17-08-2009 à 16:43:56  profilanswer
 

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
mood
Publicité
Posté le 17-08-2009 à 16:43:56  profilanswer
 

n°1915942
olivthill
Posté le 17-08-2009 à 18:24:34  profilanswer
 

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.
 

n°1915963
unisa
Posté le 17-08-2009 à 20:19:16  profilanswer
 

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
n°1916086
olivthill
Posté le 18-08-2009 à 09:56:48  profilanswer
 

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 "/".

n°1916135
unisa
Posté le 18-08-2009 à 11:47:57  profilanswer
 

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
n°1916539
unisa
Posté le 19-08-2009 à 11:37:59  profilanswer
 

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
n°1916667
olivthill
Posté le 19-08-2009 à 15:31:01  profilanswer
 

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"

n°1916706
unisa
Posté le 19-08-2009 à 15:54:33  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch]Ajout de fonction Windows

 

Sujets relatifs
Problème de procédure PL/SQL pour lancer un batch sur ordonnanceuraccès à fonction importée à accè à fonction importé.
mb_convert_encoding et windows-1252Fonction mail OK en ligne de commande php, KO par le Web
Fonction qui retourne une structure[BATCH] script qui lance des executables
(javascript) retarder le lancement d'une fonctionC++ fonction d'une ligne : besoin d'accolades ?
[Shell/Batch] Renommer des fichiers[batch] Extraire valeur champ fichier texte
Plus de sujets relatifs à : [Batch]Ajout de fonction Windows


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR