Précédent   Forum du club des développeurs et IT Pro > Systèmes > Windows > Vos contributions
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Discussion fermée
 
Outils de la discussion
Publicité
'
Vieux 30/03/2009, 20h51   #1
shawn12
Expert Confirmé Sénior
 
Avatar de shawn12
 
Homme Thomas Garcia
Chef de projet en SSII
Inscription : avril 2006
Messages : 3 400
Détails du profil
Informations personnelles :
Nom : Homme Thomas Garcia
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Finance

Informations forums :
Inscription : avril 2006
Messages : 3 400
Points : 7 413
Points : 7 413
Par défaut Proposez vos codes-sources Batch

La rubrique Windows envisage de créer une section "Sources Batch".

Nous comptons sur vous pour nous aider à enrichir cette base de connaissances.

Comment participer ?
Répondez à cette discussion en proposant vos codes-sources en incluant les éléments suivants :
  • Titre du code-source
  • Versions de Windows compatibles avec le source
  • But du source (expliquer ce que fait le batch, ce qu'il renvoit, ...)
  • Expliquer brièvement l'implémentation (brève explication des syntaxes utilisées, ...)
  • Code source (encadré de balises [code])

Merci pour votre participation.
shawn12 est déconnecté   Envoyer un message privé 00
Vieux 30/03/2009, 22h35   #2
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
chouette idée!!!

bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 30/03/2009, 23h24   #3
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Par défaut vishid.cmd

Ce code vous permet de cacher un dossier (si vous avez des dossiers sensibles)

par exemple votre dossier est : "C:\interdit aux autres" vous pouvez faire:
Code :
vishid "C:\interdit aux autres" /fr
pour rétablir à l'état initial votre dossier il faut vous mettre dans le même répertoire que celui-ci et faire:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
::
::  C-NAME: VISHID.Cmd 
::  AUTHOR: WALID
::  DATE-C: 08/04/2009
:: 
::  SYNTAX: VISHID [Folder | * ] [Opt]
::  EX-SYN: VISHID FolderTest /pc
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off & setlocal

:-
Set id1="Panneau de configuration.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
Set id2="Poste de travail.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
Set id3="connexion r‚seau.{7007ACC7-3202-11D1-AAD2-00805FC1270E}"
Set id4="print.{2227A280-3AEA-1069-A2DE-08002B30309D}"
Set id5="Tƒches planifi‚es.{D6277990-4C6A-11CF-8D87-00AA0060F5BF}" 
Set id6="Favoris r‚seau.{208D2C60-3AEA-1069-A2D7-08002B30309D}"
:
If  %1!==!  goto :aide
If  %1!==*!   Set ?=TopSecret  &goto :suite
If not exist "%~1" (cls&echo/
 echo:Le chemin: "%~pd0"&echo:ne comporte pas un dossier: "%*"&goto :EOF)

:suite
Set dmy=%1
for %%a In (pc pt cr pr tp fr) do echo.%*|find /i "/%%a" >nul  && goto :-%%a
goto :aide

:-PC
 If defined ? Set dmy=
 Ren %dmy% %id1% %?%
goto :EOF

:-PT
 If defined ? Set dmy=
 Ren %dmy% %id2% %?%                
goto :EOF

:-CR
 If defined ? Set dmy=
 Ren %dmy% %id3% %?%        
goto :EOF

:-PR
 If defined ? Set dmy=
 Ren %dmy% %id4% %?%            
goto :EOF

:-TP
 If defined ? Set dmy=
 Ren %dmy% %id5% %?%            
goto :EOF

:-FR
 If defined ? Set dmy=
 Ren %dmy% %id6% %?%            
goto :EOF


:aide
cls
echo: Syntaxe: %~nx0 [Dossier-…-cacher] [/Option] 
echo:          %~nx0 * [/Option]
echo[
echo:  /Option
echo: ==============================
echo: /pc Panneau de configuration
echo: /pt Poste de travail
echo: /cr Connexion r‚seau
echo: /pr Dossier print
echo: /tp Tƒche plannifi‚es
echo: /fr Favoris r‚seau
echo]
echo: %~nx0 DossierCible /pc
echo: "DossierCible" en Panneau de configuration
echo.
echo: %~nx0 * /pc
echo: r‚tabli le dossier  en "TopSecret"
echo.
echo: %~nx0 "Mon Dossier Secret" /cr
echo: "Mon Dossier Secret" en Connexion r‚seau
echo.
I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 30/03/2009, 23h27   #4
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Par défaut DBV.Cmd

Supprime les doublons dans un fichier.
interprète seulement les chaînes alphanumèriques, les caractères réservés sont donc interdits

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
::
::  C-NAME: DBV.Cmd 
::  AUTHOR: WALID
::  DATE-C: 08/04/2009
:: 
::  SYNTAX: DBV [file.ext]
::  EX-SYN: DBV fichier.txt
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
if not exist "%~1" (goto:eof)
cd.>tmp &for /f "delims=" %%* In ('type "%~1"') Do >nul findstr /ric:"^%%*\>" tmp||echo.%%* >>tmp
dans l'exemple le fichier source est introduit comme paramètre "%~1" contient:

Code :
1
2
3
4
5
abc
cba
abc
abcdef
abcdef

le resultat sera rediriger vers le fichier tmp son contenu sera alors:

I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 05/04/2009, 12h05   #5
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
Citation:
Envoyé par shawn12 Voir le message
La rubrique Windows envisage de créer une section "Sources Batch".

Nous comptons sur vous pour nous aider à enrichir cette base de connaissances.

Comment participer ?
Répondez à cette discussion en proposant vos codes-sources en incluant les éléments suivants :
  • Titre du code-source
  • But du source (expliquer ce que fait le batch, ce qu'il renvoit, ...)
  • Expliquer brièvement l'implémentation (brève explication des syntaxes utilisées, ...)
  • Code source (encadré de balises [code])

Merci pour votre participation.

Merci de respecter la charte, moi je comprend vos sources, mais ce n'est pas le cas de tout le monde.

bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 05/04/2009, 13h49   #6
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
salut,


Pour l'implémentation:

Bon, pour l'implémentation, je ne sais pas, car je n'ai pas, comme beaucoup d'autres, divers systems sous la main pour les tests..de comptabilité

Pour l'explication:

Shawn12, que je remercie d'ici, a clairement dit (une brève explication) et c'est ce que j'ai fais, bon pour les 2 premiers codes seulement, quant aux autres ils seront bientôts supprimer de cette section vu qu'ils ne sont pas compris par tout le monde

il est à noter aussi que la nouvelle section "Codes-source" ne sera créer que lorsque un nombre importants de codes sera ajouter dans "cette section de contribution" alors ça laissera du temps pour les réctifications,corrections,ajouts,suppressions..
__________________

Gawk
Sed
ActivePerl
python
CoreUtils for Windows


I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 10/04/2009, 14h28   #7
Laurent Dardenne
Rédacteur
 
Inscription : janvier 2003
Messages : 6 246
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 6 246
Points : 10 192
Points : 10 192
Salut,
Citation:
Envoyé par I'm_HERE
quant aux autres ils seront bientôts supprimer de cette section vu qu'ils ne sont pas compris par tout le monde
Oui mais du coup on a même pas l'occasion d'approfondir et de connaître les astuces utilisés, ni d'expérimenter.

Citation:
Envoyé par Senji
Merci de respecter la charte
L'ajout d'une notion de niveau comme sur les tutoriels est préférable.
C'est plutot la "charte" qu'il faut enrichir/modifier et pas appauvrir d'entrée de jeux cette initiative.
Faut tirer vers le haut pas vers le bas
__________________
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - Ressources PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Laurent Dardenne est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 13h37   #8
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
Citation:
Envoyé par Laurent Dardenne Voir le message
Salut,

L'ajout d'une notion de niveau comme sur les tutoriels est préférable.
C'est plutot la "charte" qu'il faut enrichir/modifier et pas appauvrir d'entrée de jeux cette initiative.
Faut tirer vers le haut pas vers le bas
évidement je suis tout à fait d'accord.

1. définition du niveau (cb de niveau?)
ex:
***** => expert
*** => difficile
* => facile
c'est une idée.

pour la charte

genre :
commenter les fonctions , les syntaxes ex:

%~dp0 => si le fichier est sur le même répertoire, il est inutile de mettre le chemin, on peut mettre ex:%~dp0log.log
(c'est un exemple)

cd.>tmp &for /f ... => l'esperluette & permet d'ajouter une autre instruction sur la même ligne


enfin c'est comme ça que je vois la chose pour que cela soit plus enrichissant et instructif pour tout le monde.

c'est claire que tout est à définir.

je ne sais pas si vous êtes tous d'accord.

bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 14h20   #9
Laurent Dardenne
Rédacteur
 
Inscription : janvier 2003
Messages : 6 246
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 6 246
Points : 10 192
Points : 10 192
Citation:
Envoyé par Senji
définition du niveau (cb de niveau?)


En reprennant ceux que j'utilise pour les tutos, trois 'niveaux' me semble suffisant :
  • Débutant
  • Avancé
  • Confirmé
Mais cela reste toujours subjectif.
Citation:
Envoyé par Senji
commenter les fonctions, les syntaxes ex:
Si c'est fait tant mieux mais ce n'est pas obligatoire. Un fichier batch est spécifique à un traitement et est rarement générique.
C'est le résultat du script qui nous intéressent, pas comment on obtient ce résultat. Cela n'est nécessaire que si on souhaite le corriger ou l'adapter. Si vous comptez y ajouter la compréhension ce n'est pas l'objectif d'un code source. Je peux très bien utiliser un code source et comprendre son fonctionnement 6 mois ou 2 ans plus tard.

Pour ton exemple
Citation:
Envoyé par Senji
%~dp0 =>
ceci est dans la documentation en ligne de Windows, pas la peine de recopier la doc dans chaque source. De plus vu les questions posées dans le forum Batch on se demande parfois s'il y en a qui lise la doc
Citation:
Envoyé par Senji
c'est claire que tout est à définir.
Je pense qu'au contraire il est préférable de placer le moins de contrainte possible, ceci n'est pas une FAQ.
Par contre certaines astuces peuvent se retrouver documentées dans la FAQ (pour les courageux).
Citation:
Envoyé par Senji
je ne sais pas si vous êtes tous d'accord.
Si on peut l'être tant mieux, mais ce sera plutôt une affaire de compromis

Faire simple. L'objectif est de partager des sources, pas d'écrire des tutoriels ni d'enrichir la FAQ.
Structuré mais simple.
__________________
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - Ressources PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Laurent Dardenne est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 14h43   #10
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
ok, je vois mieux.
donc si c'est pas une extension de la FAQ, pourrait on alors catégoriser chaque source?
ex:
Réseaux
* batch logon script
* etc...

Active Directory
* ....
* ....

Truc & astuces
* bar de progression....

bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 15h12   #11
Laurent Dardenne
Rédacteur
 
Inscription : janvier 2003
Messages : 6 246
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 6 246
Points : 10 192
Points : 10 192
Citation:
Envoyé par Senji
pourrait on alors catégoriser chaque source?
Oui, bien que je vois cette catégorisation du coté du gestionnaire de code sources et pas du coté du contributeur. On ajoute une info
Ensuite, pour moi, la catégorisation est un exercice difficile, si simple qu'elle puisse paraître.

A mon avis il faut prendre cette contribution comme une corbeille public, un peu comme ce site sur PowerShell. Son intérêt est la possibilité de correction/enrichissement d'un script (versionning). Son contributeur le poste, ensuite le script fait sa vie. Si tu ne comprends pas ce qu'il fait, personne ne viendra te le reprocher.
S'il ne te convient pas, tu as le droit de ne pas t'en servir

Dans ce cas c'est l'outil qui aide à structurer, pas le contributeur.
__________________
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - Ressources PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Laurent Dardenne est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 15h29   #12
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
cool c'est nickel et très clair pour moi.

Merci

bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 16h20   #13
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
Script avec Bar de Progression en pourcentage V1.0 lol

ce script rajoute le pourcentage du temps écoulé jusqu'à atteindre 100%
je vais l'améliorer pour la copie afin de combler les lacune de xcopy pour ne copier que ce qui a été modifié. pour l'instant c'est la bar de progression qui est sujet.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
:Initialisation de la variable
SET i=1
:DEBUT
CALL :ProgressBar %i%
:Copie d'un rep d'une source vers une destination
XCOPY c:\toshiba D:\Toshiba /S /E /C /I /F /Y

:incrémentation de la variable
SET /a i = i + 1
if /i %i% LEQ 100 goto start
GOTO :EOF

:ProgressBar
TITLE %1%% Completed
EXIT /b
ENDLOCAL
bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 18h27   #14
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Salut,

je te rappel de:

Expliquer brièvement l'implémentation (brève explication des syntaxes utilisées, ...)

__________________

Gawk
Sed
ActivePerl
python
CoreUtils for Windows


I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 11/04/2009, 22h43   #15
Senji
Membre Expert
 
Avatar de Senji
 
Inscription : juillet 2008
Messages : 1 144
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 1 144
Points : 1 243
Points : 1 243
Citation:
Envoyé par I'm_HERE Voir le message
Salut,

je te rappel de:

Expliquer brièvement l'implémentation (brève explication des syntaxes utilisées, ...)

LOL, vu l'échange avec Laurent D, je te dois mes humbles excuses, camarade :-)

bye
__________________
Merci de lire les réponses jusqu'à compréhension!!!
RTFM

Vive les bananes
______________
Senji est déconnecté   Envoyer un message privé 00
Vieux 13/04/2009, 12h58   #16
MacMini
Invité de passage
 
Inscription : mars 2009
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 2
Points : 1
Points : 1
bonjour,

désolé de vous embêter,

j'aimerai quelques explication des syntaxes

Code :
1
2
3
If  %1!==! => ça veut dire quoi le !==!
If  %1!==*! => même question
et aussi le caractère d'échappement devant un pipe comme cet exemple:
Code :
CHO DIR ˆ| FINDSTR /R /I /C:" 0 Dir(s)" ˆ>NUL >> TEMPORARY.BAT
Merci de votre aide
MacMini est déconnecté   Envoyer un message privé 00
Vieux 14/04/2009, 17h26   #17
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Par défaut HcO.Cmd

:: HCO.Cmd ::

Salut,

invite de commandes personnalisée,


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
::
::  C-NAME: HCO.Cmd 
::  AUTHOR: WALID
::  DATE-C: 08/04/2009
:: 
::  SYNTAX: HCO
::  EX-SYN: HCO   
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@Echo off
If %_%/==/ (Cmd /T:0e /K" Set _=_&%0& Prompt $S-&goto:eof") 
Mode Con: Cols=110 Lines=50
Title -- %~nx0 --  
Echo.
::- %1=String  %2=code Couleur
Call:Coolor "  H A P P Y   C O N S O L E" 2    
Call:Coolor "        groups.google.batchers" 3
Call:Coolor " Info" e0                        
Call:Coolor "   ___Console %UserName%__" 60    
ECHO.
Goto:eof

:Coolor
MD $$$
CD $$$
Echo;>"%~1"
findstr /a:%2 "$" "%~1*"
CD..
rd /s /q $$$
I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 11/05/2009, 09h13   #18
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Par défaut DSV.Cmd

Salut,

pour déterminer l'espace d'un disque en GB

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
::  C-NAME: DSV.Cmd 
::  AUTHOR: WALID
::  DATE-C: 08/04/2009
:: 
::  SYNTAX: DSV [L.Drive]
::  EX-SYN: DSV
::          DSV H: C: D: > file.ext   
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off&Set em="GB MB"&Set ch="Partition Amovible Removeable"
Set dc=%*&If defined dc Set dc=^|findStr /i "%*"
for /f "tokens=3*" %%a In (
 'echo:list volume^|diskpart^|findstr "NTFS FAT32"') do call:. %%a %%b
pause>&2&goto:eof
:.
Setlocal
 >nul (echo.%2|findstr %ch% ) && (Set .Start=true)
 >nul (echo.%2|findstr %em% ) && (Set .end=true)
 If defined .start If not defined .end echo:%1: %2 %3|findstr /V %ch% %dc%
 shift /2 &if %2' neq ' goto:.
Endlocal
I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 11/05/2009, 09h15   #19
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Par défaut NServer.Cmd

salut,

pour afficher le NameServer:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
::
::  C-NAME: NSERVER.Cmd 
::  AUTEUR: WALID
::  DATE-C: 08/04/2009 
::
::  SYNTAX: NSERVER 
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@Echo off & Setlocal enableextensions enabledelayedexpansion

Set key=HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

For /f "delims=" %%i In ('reg query "%key%"') Do (
  Set subkey=%%~ni
  If "!subkey:~,1!"=="{" Set clsid=!subkey! 
  If defined clsid (
   Set keyclsid=!key!\!clsid! & Set keyclsid=!keyclsid: =!
   for /f "tokens=1,2*" %%b in ('reg query "!keyclsid!" ^|findStr /i "NameServer DhcpNameServer"') do (
     Set DNS=%%d
     If defined DNS Echo CLSID=!clsid!%%b=%%d
  )
 )
)
pause
I'm_HERE est déconnecté   Envoyer un message privé 00
Vieux 11/05/2009, 09h21   #20
I'm_HERE
Membre Expert
 
Avatar de I'm_HERE
 
Homme Walid Toumi
Inscription : juillet 2008
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Walid Toumi
Localisation : Tunisie

Informations forums :
Inscription : juillet 2008
Messages : 891
Points : 1 222
Points : 1 222
Par défaut TXml.Cmd

Salut,

pour automatiser un traitement avec les fichieres Xml (renommage selon l'ID - déplacement - gestion des erreurs)


Code :
1
2
3
4
5
6
7
8
9
10
 Le Script va déclencher un compte à rebours %c% si
 dossier %Source% ne contient pas de fichiers Xml..
 à la présence de fichiers Xml le script va chercher s'il y a 
 une balise <id> et va déclencher un autre compte à rebours %n%
 si l'<id> n'est pas présente..
 Par contre si l'ID est présente, son contenu va être le nouveau 
 nom du fichier Xml, et va ensuite être déplacer vers le dossier 
 %dest% 
   Exemple: 
<id>Storage 3</id>   --->  Storage 3.xml

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
::
::  C-NAME: TXml.Cmd 
::  AUTHOR: WALID
::  DATE-C: 08/04/2009
:: 
::  SYNTAX: TXml
::  EX-SYN: TXml [REP.SOURCE] [REP.DESTINATION]
::          TXml C:\Source D:\Cible
::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
Setlocal enableextensions&Set /a c=5,n=5

:_répertoire Source
Set source="%~1"
if not exist %source% (exit /b 0)

:_dossier de destination le créer s'il n'existe pas
Set dest="%~2"
If not Exist "%dest%" Md "%dest%"

Pushd "%source%"
:Loop
 If not exist "*.xml" (for %%V In (CALL Goto:EOF) Do %%V :NotExist)
 (FindStr "<id>" *.xml >NUL)  || (GOTO:NoTag)
 cls&dir /a-d/b "*.xml"&echo/*******************************&Echo/
 for /f "tokens=1,2 delims=:" %%A In ('findstr "<id>" *.xml') do (
 Set _="%%B"
 Call Set _=%%_:^<id^>=#%%
 Call Set _=%%_:^</id^>=#%%
 for /f "tokens=2 delims=#" %%a In ('Call echo.%%_%%^|more') do (
 Move /Y "%%~fA" "%dest%\%%a.xml"
 echo "%%~fA" ------^> %%a.xml))
Popd
Pause&Goto:eof

:NoTag
 cls&echo/&echo     PAS DE BALISE ^<id^>: %n%
 Ping -n 5 LocalHost >nul 
 Set /a n-=1
 If %n% neq 0 goto:Loop
 Goto:eof
 :NotExist
 cls&echo/&echo     PAS DE FICHIERS XML: %c%
 Ping -n 5 LocalHost >nul
 Set /a c-=1
 If %c% neq 0 goto:Loop
I'm_HERE est déconnecté   Envoyer un message privé 00
Discussion fermée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h43.


 
 
 
 
Partenaires

Hébergement Web