TexteTop
Communauté

Login Membres: 3574


Menu

Liens



flecheAccueil

Bonjour et bienvenue sur Batcher.fr le site de ressource sur la création de scripts MS-DOS. Vous apprendrez les bases de la création de scripts batch, afin de vous simplifier la vie. Vous découvrirez comment, à l'aide d'un simple éditeur de texte il est possible d'aller assez loin.Terminal

 

Mais que sont les Batchs: Un fichier batch est, sous le système d'exploitation Windows, un fichier (ou script) contenant une série d'instructions MS-DOS. Ces fichiers, lorsqu'ils sont lancés, exécutent les commandes contenues dans le fichier. Ces commandes sont alors interprétées par les exécutables cmd.exe et command.com. Les scripts ainsi créer pourront s'exécuter sur les tous les environnements Windows.

 

Vous apprendrez donc à "batcher" en plusieurs étapes, tout d'abord connaître les différentes commandes. Puis créer votre premier batch, ensuite vous pourrez sophistiquer vos batch en intégrant des variables, des fonctions et enfin personnaliser l'affichage. Pour les questions courantes n'hésitez pas à consulter la FAQ, sinon le forum vous accueil.



coin coin

forum  En direct du forum, aider El_Barto
le 20/02/20: Récupérer la 1ere ligne d'un fichier texte et l'utiliser comme variable dans un batch


Bonjour à tous,
Actuellement en pleine confection d'un batch, je cherche une commande pour
recuperer la seconde ligne d'un fichier texte (qui contient uniquement le numero
de serie d'un pc) afin de men servir pour nommer un fichier texte; j'arrive a réaliser
cela depuis des commandes powershell, en script ps1, mais je ne trouve pas
d'équivalence opérationnelle pour les batch...
J'ai bien trouvé des scripts comme celui-ci:

@echo off
set currentpath=%~dp0
wmic csproduct get identifyingnumber>>%currentpath%\Data\Temp\SN.txt
set "file=%currentpath%\Data\Temp\SN.txt"
call :GetLine "%file%" 2
set ma_ligne=%Line%
echo;%ma_ligne%
:GetLine <file> <Nb>
if "%~1"=="" pause>nul&exit
set "tmpFile=%~1"
set /a nb=%~2
set /a nbSkip=%nb%-1
( echo;for /f "skip=%nbSkip% tokens=*" %%%%l in ^('type "%tmpFile%"'^) do set "line=%%%%l"^&goto :GetLineok&echo;:GetLineok )> "%temp%\tmp_%~nx0"
call "%temp%\tmp_%~nx0"&del /q "%temp%\tmp_%~nx0"
set "line_%nb%=%line%"
cd C:\Windows\system32
hostname>>%currentpath%\Rapport\%ma_ligne%.txt

La commande "echo;%ma_ligne%" m'affiche bien l'élément mais le fichier texte prend pour
nom ".txt"...de plus si je choisis de récupérer la 1ere ligne (en remplaçant 2 par 1 à la
4ème ligne du script), d'un autre fichier dont j'ai besoin, le message "tokens=*" est inattendu"
et j'avoue ne pas comprendre pourquoi...
Mon but etant de stocker des infos dans un fichier texte qui aurait pour nom le numéro de série
de l'appareil, et pouvoir faire la même avec le nom d'hôte, ce que j'ai pu faire en ps1.
Merci à ceux qui pourrait m'apporter leur aide.
...

coin coin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q Une question, une remarque, n'hésitez pas à visiter le forum