PB script .bat [Résolu/Fermé]

Signaler
Messages postés
11
Date d'inscription
lundi 27 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2010
-
Messages postés
11
Date d'inscription
lundi 27 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2010
-
Bonjour,

Je suis en train d'automatiser la création d'une clé WINPE 2.0 ou 3.0 avec le WAIK

dans mon script je souhaite créer automatiquement un fichier bat qui contient des variables.

EX:
Mon script de création:

echo @echo off > c:\startnet.cmd
ECHO set USBDRIVE= >> c:\startnet.cmd
ECHO if "%USBDRIVE%" == "" ( >> c:\startnet.cmd
ECHO FOR %%h IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%%h:\scripts\Lanceur.vbs" SET USBDRIVE=%%h: >> c:\startnet.cmd

ECHO ) >> c:\startnet.cmd
 


et voici le retour de mon fichier "startnet.cmd"

set usbdrive= 
if "" == "" ( 
   FOR %h IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%h:\scripts\Lanceur.vbs" SET USBDRIVE=%h: 
) 
cscript.exe //nologo \scripts\Lanceur.vbs 



Mon probleme est que je souhaite si cela est possible rediriger le text tel quel et non ma valeur.

sur ma 2ieme ligne je voudrais avoir IF "%USBDRIVE%" == au lieu de IF ""==

Est ce que quelqu'un connait une astuce?
Je précise que quand je crée mon fichier starnet.cmd à la main j'ai bien le lancement de mon script lanceur.vbs.


d'avance Merci


Si en plus quelqu'un peut me renseigné sur la différence entre = et ==.

Merci aussi.

5 réponses

Messages postés
2295
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
198
il me semble que la commande for n existe pas ...
For c est en fait un if et un goto ...
https://www.c3scripts.com/tutorials/msdos/commands.html
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
125
Bonjour,

je n'ai pu m'en sortir qu'en utilisant des variables intermédiaires; zone1, 2 t 3.

SET "zone1=%%USBDRIVE%%"
SET "zone2=FOR %%h IN (C D E F G H I J K L M N O P Q R S T U V W X Y)"
SET "zone3=DO (IF EXIST "%%h:\scripts\Lanceur.vbs" (SET USBDRIVE=%%h:) ) )"
SET "nom_file=startnet.cmd"

(
ECHO @echo off
ECHO set USBDRIVE=
ECHO if "!zone1!" == "" (
ECHO !zone2!
ECHO !zone3!
) > !nom_file!

-----------------------------------------------------------------------

NB: ECHO if "!zone1!" == "" (
peut se coder directement :
ECHO if "%%USBDRIVE%%" == "" (

Cordialement.
Cchristian.
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 325
hello
utiliser des doubles %
echo @echo off > c:\startnet.cmd
ECHO set USBDRIVE= >> c:\startnet.cmd
ECHO if "%%USBDRIVE%%" == "" ( >> c:\startnet.cmd
ECHO FOR %%%%h IN (C D E F G H I J K L M N O P Q R S T U V W X Y) DO IF EXIST "%%%%h:\scripts\Lanceur.vbs" SET USBDRIVE=%%%%h: >> c:\startnet.cmd

ECHO ) >> c:\startnet.cmd
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
125
Bonjour,

Oui, en effet. Je n'ai pas suffisamment poussé mon raisonnement à propos des doubles %. Merci,
Messages postés
11
Date d'inscription
lundi 27 septembre 2010
Statut
Membre
Dernière intervention
23 novembre 2010
1
Ça marche du tonnerre.

Merci Dubeck et Cchristian.