script bat

alessio

Nouveau membre
Bonjour à tous,

Voilà je débute en script dos (.bat) et un problème me pousse à venir demander votre aide

Voici ma demande

J'aimerais faire un script qui vérifie chaque pc (pcsgsbxp001 jusqu'à 126 ensuite de pcsgsbxp300 à pcsgsbxp310) qui vérifie si il y a un dossier apriso dans le programme files, qu'il fasse automatiquement 1 à 1 les pc et qu'il copie si le dossier apriso y est les fichier de mon pc, exemple

@echo off
set flexnet=c:\Temp\Vrai_Temp

if exist "\\pcsgsbxp001\c$\Program Files\Apriso goto test
if not exist \\pcsgsbxp001\c$\Program Files\Apriso goto suivant
:test
xcopy /y /E Simu "\\pcsgsbxp001\c$\Program Files\Apriso\FlexNet72"

:suivant
if exist "\\pcsgsbxp002\c$\Program Files\Apriso goto test2
if not exist \\pcsgsbxp002\c$\Program Files\Apriso goto suivant2
:test2
xcopy /y /E Simu "\\pcsgsbxp001\c$\Program Files\Apriso\FlexNet72"

etc...

mais j'aimerais que ça soit une boucle qu'il fasse jusque 126 et ensuite de commencer à pcsgsbxp300 jusque pcsgsbxp310

et aussi d'écrire dans un fichier les pc qu'il na pas trouvé le dossier Apriso

Un grand merci d'avance si vous me trouvez la réponse

Bonne journée à tous

 

zeb

Modérateur
Si moi : utilise Cygwin ( ).

La commande expr t'aidera à faire x + 1, chose que DOS ne sait pas faire.

Sinon, un tout petit gropgramme en C pourrait faire l'affaire.

Pourquoi, parce que DOS ne sait pas faire 1 + 1 :(
 

alessio

Nouveau membre
malheureusement je dois le faire par dos :-( je ne peux utiliser un autre programme :-(

 

CaiRve

Grand Maître
le for est possible en batch, du moins en dos sous winxp :
H:\>for /?
Runs a specified command for each file in a set of files.

FOR %variable IN (set) DO command [command-parameters]

%variable Specifies a single letter replaceable parameter.
(set) Specifies a set of one or more files. Wildcards may be used.
command Specifies the command to carry out for each file.
command-parameters
Specifies parameters or switches for the specified command.

To use the FOR command in a batch program, specify %%variable instead
of %variable. Variable names are case sensitive, so %i is different
from %I.

If Command Extensions are enabled, the following additional
forms of the FOR command are supported:

FOR /D %variable IN (set) DO command [command-parameters]

If set contains wildcards, then specifies to match against directory
names instead of file names.

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

Walks the directory tree rooted at [drive:]path, executing the FOR
statement in each directory of the tree. If no directory
specification is specified after /R then the current directory is
assumed. If set is just a single period (.) character then it
will just enumerate the directory tree.

FOR /L %variable IN (start,step,end) DO command [command-parameters]

The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)
 

thev

Nouveau membre
ca pourra t'aidé:
fait un map vers les machines selectionnée et copy un folder a l'endroit voulu + .log qui indique tout se qui s'est passé
cls
echo ************************************************************
echo * *
echo * Copy Folders and Files for a Group of Worstations *
echo * *
echo ************************************************************
set fnum=

set /p fnum= Enter the Number of first Workstation and press enter:
echo * *
echo The first worstation is PTIWSXPCAD000%fnum%
echo * *
set lnum=
set /p lnum= Enter the Number of Last Workstation and press enter:
echo * *
echo The last worstation is PTIWSXPCAD000%lnum%
echo * *
echo ************************************************************
echo * *
set /a tt=%lnum%-%fnum%
IF %tt% equ 1 set tt=2
IF %lnum% equ %fnum% set /a tt=1
echo The process is for %tt% computer(s)
echo * *
echo ************************************************************
echo . >> C:\CADCOPY.log
echo . >> C:\CADCOPY.log
echo ============================================================ >> C:\CADCOPY.log
echo Process de PTIWSXPCAD000%fnum% to PTIWSXPCAD000%lnum% >> C:\CADCOPY.log
echo Total: %tt% Computer(s) %date% at %time% >> C:\CADCOPY.log
echo ============================================================ >> C:\CADCOPY.log
pause
CLS
set wksnam=PTIWSXPCAD000%fnum%
goto map
:wks
set /a fnum=%fnum%+1
set wksnam=PTIWSXPCAD000%fnum%
goto map
:map
net use y: \\%wksnam%\D$
echo Begin Process %wksnam% at %time%
IF NOT EXIST y: echo . %wksnam% NOT CONNECT %time%>> C:\CADCOPY.log
IF NOT EXIST y:\cursus goto copy
dir y:
;RMdir y:\cursus /s /q
:copy
dir y:
;xcopy d:\folder y:\cursus /e /k /q /v /y /z
;if errorlevel 1 echo . %wksnam% No the file or source file at %time%>> C:\CADCOPY.log
;if errorlevel 1 echo . %wksnam% No the file or source file at %time%
;if errorlevel 2 echo . %wksnam% you are press to [Ctrl]+[C] at %time%>> C:\CADCOPY.log
;if errorlevel 2 echo . %wksnam% you are press to [Ctrl]+[C] at %time%
;if errorlevel 4 echo . %wksnam% Space Disk Low at %time%>> C:\CADCOPY.log
;if errorlevel 4 echo . %wksnam% Space Disk Low at %time%
;if errorlevel 5 echo . %wksnam% Write Error at %time%>> C:\CADCOPY.log
;if errorlevel 5 echo . %wksnam% Write Error at %time%

echo . %wksnam% copy correct at %time%>> C:\CADCOPY.log
net use y: /d /y

:EoF
if /i %fnum% EQU %lnum% goto end
set wksnam=
goto wks

:end
set /a num=
set /p num= Press [1] to Continue or [ANY KEY] to Quit:
IF %num% EQU 1 goto start else exit
exit

 

zeb

Modérateur
Whaou !!

Au bout de 1 an, 9 mois, 20 jours, 10 heures et 49 minutes, alors que la réponse a déjà été donnée en temps et en heures, je crois qu'il s'en fout.

T'autant que ton message viole les règles des publication de cette catégorie.

Ah, encore une chose, révise tes cours d'anglais, tes messages d'erreur ne veulent rien dire dans la langue de Shakespeare.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 136
Messages
6 718 121
Membres
1 586 398
Dernier membre
mookie767
Partager cette page
Haut