Script et commande sous Win2000 et Win98 - Win NT/2K/XP - Windows & Software
Marsh Posté le 26-11-2002 à 09:31:34
En commande batch :
pour rechercher des types de fichiers :
dir c:\rep_depart\*.log /s >toto.txt
pour rechercher les fichier .log
variables d'environnement : %username% sous NT, 2000, XP
n'existe pas sous 9x
tape set dans une boîte DOS pour avoir la liste des variables.
pour les batchs, mon site favori est :
http://www.robvanderwoude.com/index.html
A+
Marsh Posté le 26-11-2002 à 10:59:42
La commande dir est évidemment la plus adaptée.
Tu peux essayer le paramètre /b, qui te donne un affichage du genre:
C:\>dir /s /b *.c |
Marsh Posté le 26-11-2002 à 11:17:25
Pour la récupération du %username% sous Win9x, il existe un petit programme très pratique: putinenv.
"putinenv L" crée les variables ROOT, COMPUTERNAME, USERNAME, LANGROUP, LOGONSERVER, MAJOR et MINOR dans l'environnement (comme NT quoi).
Autre outil très pratique sous Win9x: winset, qui permet de définir une variable (PATH par exemple) dans l'environnement système (et pas seulement dans l'environnement d'exécution du script, comme c'est le cas par défaut ).
Enfin une info importante:
Indispensable lorsque l'on veut exécuter un programme externe (putinenv ou winset par exemple ).
Marsh Posté le 26-11-2002 à 12:00:09
Nico57 a écrit a écrit : Pour la récupération du %username% sous Win9x, il existe un petit programme très pratique: putinenv. "putinenv L" crée les variables ROOT, COMPUTERNAME, USERNAME, LANGROUP, LOGONSERVER, MAJOR et MINOR dans l'environnement (comme NT quoi). Autre outil très pratique sous Win9x: winset, qui permet de définir une variable (PATH par exemple) dans l'environnement système (et pas seulement dans l'environnement d'exécution du script, comme c'est le cas par défaut ). Enfin une info importante:
Indispensable lorsque l'on veut exécuter un programme externe (putinenv ou winset par exemple ). |
Merci c'est justement ce dont j'avais besoin. Je fais une recherche sur la commande.
Je suis sur le site cité plus haut il est excellent merci !
Pour le Z: je m'en suis rendu compte le répertoire partagé est le sysvol/script il me semble ?
Il m'a semblé voir dans la doc de windows(ou peutêtre ailleur), 3 commandes pour manipuler la base de registre. Il y en avait une pour lire une clé, une autre pour en créer, et une dernière pour effacer. Le prob c'est que je n'arrive plus a mettre la main dessus. Est ce que quelqu'un connait ces commandes (Je les ai peut être rêvé )?
Marsh Posté le 26-11-2002 à 12:11:20
[citation]
Il m'a semblé voir dans la doc de windows(ou peutêtre ailleur), 3 commandes pour manipuler la base de registre. Il y en avait une pour lire une clé, une autre pour en créer, et une dernière pour effacer. Le prob c'est que je n'arrive plus a mettre la main dessus. Est ce que quelqu'un connait ces commandes (Je les ai peut être rêvé )?
[/citation]
OUI. Tu as rêvé !!! Ou tu as confondu avec un livre de développement où il existe effectivement des fonctions pour ajout/création/manipulation de clés.
Eventuellement dans le kit de ressources techniques, il existe des outils pour faire ça ? Mais pas en natif !
Cyrille
Marsh Posté le 26-11-2002 à 12:53:52
ldsteph a écrit a écrit : Il m'a semblé voir dans la doc de windows(ou peutêtre ailleur), 3 commandes pour manipuler la base de registre. Il y en avait une pour lire une clé, une autre pour en créer, et une dernière pour effacer. Le prob c'est que je n'arrive plus a mettre la main dessus. Est ce que quelqu'un connait ces commandes (Je les ai peut être rêvé )? |
Tiré du site
www.ac-creteil.fr/reseaux/SYSTEMES [...] gistre.htm
-----
Un exemple avec Kixtart , supprimer les profils sur un poste en Windows 98:
Les lignes précédées d'un point virgule sont des commentaires, l'appel à une fonction est définie par une variable précédée du signe $
; classe.kix 10/09/01
; Script de connexion
$n=setconsole("minimize" )
$n=setconsole("hide" )
; supprime la clef de la base de registre d'activation des profils si elle existe encore
$n=deltree("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProfileList" )
Le même exemple en utilisant WSH:
Windows Scripting Host (WSH) existe depuis Windows 95 OSR2 + IE4. Microsoft veut en faire le remplaçant du DOS. WSH prend appui sur Vbscript, une variante de Visual Basic. Il offre l'avantage d'être concis et l'inconvénient d'être le vecteur de certains virus.
; Nettoyage 01/02
Dim WSHShell
'Activation de l'objet WScript.Shell qui permet d'accéder à la base de registre
Set WSHShell = WScript.CreateObject("WScript.Shell" )
'Suppression de la clef
WSHShell.RegDelete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ProfileList"
------
Bonne chance
Marsh Posté le 27-11-2002 à 14:16:55
Salut ! A tous,
Voila j'ai pleins de nouveau problèmes. Je croyais avoir terminé mes scripts, mais le dos WIN98 ne correspond vraiment pas a celui de WIN2000
Le type de réseaux sur lequel je bosse, est de type WIN2000(Serveur),WIN98(clients). Mon script doit créer un fichier log. Celui-ci liste les fichiers d'une certaine extension.
Le problème c'est que mon script utilise le command.com (+tot logique en fait), mais avec le dos 98 j'arrive a rien faire. Je peux pas combiné mes commandes avec des (), des &&, je peux pas faire de dir *.com;*.bat, je trouve la redirection bizarre. Bref j'ai vraiment du mal !
J'ai donc quelques petites questions :
- Y a t'il moyen d'utiliser les commandes de Win2000 sur une station W98 (Je suis en plein rêve la ) ?
- Sinon (Surement) y a t'il moyen de faire autre chose que connecter des lecteurs réseaux sous DOS/WIN98 ?
- Suis je obligé de me mettre a WSH, pour faire ce genre de scripts ( ca me parraissait pas très compliqué au début) ?
- La commande shell de kixstart, utilise le command.com de la machine cliente , ou quelque chose d'autre ?
Voila that's all
Jpa le site est excellent,
merci pour putinenv, c'est bien pratique !
Allez A+
Marsh Posté le 27-11-2002 à 16:04:43
Le shell de Win9x a effectivement beaucoup moins de possibilités que celui de NT (c'est le DOS quoi), mais en bricolant un peu on arrive à faire des trucs.
Par exemple si tu veux afficher la liste des .com et .bat du disque, comme tu t'en es rendu compte dir /s *.com *.bat ne fonctionne pas.
Tu peux faire:
dir /s *.com > liste.log |
sauf que le résultat sera trié par type de fichier, pas par répertoire.
Ou tu peux encore faire:
dir /s /b *.com > %temp%\temp.log |
qui devrait (pas testé) te donner la liste correctement triée par répertoire.
Ou alors tu peux utiliser un des nombreux environnements de script existant, WSH dispo en standard sous Win9x, kixtart que je ne connais pas, Perl, ...
Marsh Posté le 27-11-2002 à 16:45:44
dir /s /b *.com > %temp%\temp.log
dir /s /b *.bat >> %temp%\temp.log
sort < %temp%\temp.log > liste.log
C'est une excellente idée j'essaye ça demain !!!
J'ai survolé la doc de Kixtart (3.2) apparement c'est plutot pour gerer l'environnement windows lui mème (base de registre notament), il y a des fonctions utiles et sympa, mais pas vraiment pour les commandes dos. Je regarderai ca plus en details si j'arrive pas avoir ce que je jeux.
Quand WSH c'est de l'objet a première vue, et mis a part un peu de javascript, je connais pas le domaine, mais ca a l'air intérressant.
Je trouverai bien une solution pour faire ça...
Encore merci pour l'aide et A+
Marsh Posté le 26-11-2002 à 09:10:31
Salut !
Je suis en train d'ecrire un script de démarrage, qui recherche des types de fichiers dans une arbo. de repertoire, et qui m'inscrit tout cela dans un log.
J'ai rencontré plusieurs problèmes :
Tout d'abord je n'ai pas trouvé de commande search, j'ai du faire un for, pour y arriver. Ca marche mais c'est un peu lourd et je ne suis pas sur que ca soit très portable sur une station 98 (j'ai pas encore testé), je suis sous 2000 la. A ce propos j'ai donc deux questions, exist'il une commande search ou equivalent? l'interprétation d'un script sur une station ce fait elle par le client ou le serveur ?
Ensuite existe t'il des variables d'environnement, notamment l'id de l'utilisateur? J'ai cherché mais il me semble que non. J'ai alors pensé que ca devait surement ce trouvé dans la base de registre du client. Ma deuxième question est si cette clé existe, ou-est elle (Je ne me suis jamais penché sur la structure de la base de registre)?
Et enfin connaissez vous de bon site qui documente tout ça (la base de registre, les scripts et le batch(2000)?
Ouf...
Voila c'est un peu long, dsl
Merci a tous !
Message édité par ldsteph le 27-11-2002 à 14:18:55