OVH Cloud OVH Cloud

Quantième de l'année en commande DOS

24 réponses
Avatar
---DGI972---
Bonjour,
Je suis toujours à la recherche d'une commande DOS pour récupérer le
Quantième de l'année.
Pour aujourdh'hui 13/09/2006 :Quantième= 256
J'ai la formule magique en vbs:
QUANT=Date()-DateSerial(Year(Date()),1,1)+1
mais pas en ligne de commande.
date /? me donne aucune indication
Je ne trouve pas sur le net.

j'ai besoin de copier un nom de fichier avec le quantième de l'année

for /F %%i in ('dir \\97.20.2.103\TOTO\FICHIER*.* /B /O:E') do (set
dernier=%%i)
SET QQQ= 'fabrication du quantième de l'année
copy \\97.20.2.103\TOT\%dernier%
\\192.168.15.31\D\TATA\%dernier%QQQ.txt

si vous avez la formule magique sous la main !

merci

10 réponses

1 2 3
Avatar
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
| Bonjour,

Bonjour Gilles :-)

Les réponses apportées à vos deux questions précédentes par Jean et
moi-même ont-elles été pertinentes ? Je me permets de vous poser cette
question car nous avions pris l'habitude d'avoir un retour de votre part
;-)

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
---DGI972---
Gilles LAURENT avait prétendu :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Bonjour,


Bonjour Gilles :-)

Les réponses apportées à vos deux questions précédentes par Jean et
moi-même ont-elles été pertinentes ? Je me permets de vous poser cette
question car nous avions pris l'habitude d'avoir un retour de votre part
;-)


Bonjour gilles et jean

et toutes mes escuses (j'espère que ma mère ne se connecte pas sur ce
Newgroup.)
Je n'ai pas encore testé le "Work in progress, please wait ..." et
j'avoue avoir été déçu de la réponse pour le HTA.
Je me suis perdue dans le site de Microsoft (Je le trouve mal conçu)
et, je suis en train de me constituer une petite HTA-théque (si cela
interesse quelqu'un, c'est impressionnant).

Il faut dire aussi que le boulot à repris à la vitesse grand V.

Pardonné ? >:|


Avatar
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
| Bonjour,

Bonsoir,

| Je suis toujours à la recherche d'une commande DOS pour récupérer le
| Quantième de l'année.
| Pour aujourdh'hui 13/09/2006 :Quantième= 256

-- Coupez ici : dnoty.cmd --

@echo off
setlocal enabledelayedexpansion

:: calcul du quantième de la date courante
call :_dayNumberOfTheYear %date%
echo %_dnoty%

:: calcul du quantième de la date spécifiée
call :_dayNumberOfTheYear 27/04/2000
echo %_dnoty%

endlocal
goto :eof

:: routine de calcul du quantième de l'année
:: en entrée la date au format jj/mm/aaaa
:: en sortie la variable d'environnement %_dnoty% contient le
:: quantième de l'année
:_dayNumberOfTheYear
for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (
set d=%%i& set m=%%j& set y=%%k
)

:: ajustement des valeurs
:: la commande set/a n'accepte pas les nombres qui commencent
:: par le chiffre 0
if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%

:: évaluation de l'année pour savoir si celle-ci est bissextiles
:: par défaut l'année n'est pas bissextiles
set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (
set bissex=True
) else (
set/a mod=%y%%%4
if !mod! equ 0 (
set/a mod=%y%%%100
if !mod! neq 0 set bissex=True
)
)

:: calcul du quantième de l'année
if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30

:: fin de traitement
goto :eof

-- Coupez ici : dnoty.cmd --

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Jean-Claude BELLAMY
Dans le message :,
---DGI972--- <gilles.dermigny@*NO SPAM*laposte.net> a pris la peine d'écrire
ce qui suit :
Bonjour,
Je suis toujours à la recherche d'une commande DOS


NANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNn !
Vu que tu parles de VBS plus loin, c'est que tu es sous Windows.
Donc tu veux parler de COMMANDE (tout court), ce qui n'a rien à voir avec
DOS !

pour récupérer le Quantième de l'année.
Pour aujourdh'hui 13/09/2006 :Quantième= 256
J'ai la formule magique en vbs:
QUANTÚte()-DateSerial(Year(Date()),1,1)+1
mais pas en ligne de commande.
date /? me donne aucune indication
Je ne trouve pas sur le net.

j'ai besoin de copier un nom de fichier avec le quantième de l'année

for /F %%i in ('dir 97.20.2.103TOTOFICHIER*.* /B /O:E') do (set
dernier=%%i)
SET QQQ= 'fabrication du quantième de l'année
copy 97.20.2.103TOT%dernier%
192.168.15.31DTATA%dernier%QQQ.txt

si vous avez la formule magique sous la main !


Il n'y a pas de magie là dedans, il suffit de faire fonctionner ses NEURONES
!!!
Et en l'occurence se rappeler ses connaissances en arithmétique élémentaire
(addition et congruence, ainsi que les syntaxes des commandes "IF" et "SET"
!
Et si on ne connait pas les dites syntaxes, on exécute les commadnes "IF /?"
et "SET /?" !
C'est avec ces démarches simples et de bons sens (= agricoles) que l'on peut
mourir moins idiot ! ;-)

Ficher "quantieme.bat"
================ Admet en paramètre la date sous la forme dd/mm/aaaa
Si absente -> on prend la date du jour
Ce script tient compte des années bissextiles jusqu'en 2099

Si on veut aller au dela (;-) ), il suffit d'ajouter un test de congruence à
100 pour l'année, et si c'est le cas tester la congruence à 4 du quotient
entier de l'année par 100. S'il n'y a pas de congruence, l'année n'est pas
bissextile (2100,2200, 2300,2500,...)
Je n'ai pas prévu ce test car je pense que dans les meilleurs cas, mon batch
figurera seulement dans un musée de l'informatique ! ;-)

NB: Pour pouvoir effectuer les comparaisons numériques,
le script ôte le "0" en tête éventuel dans le jour ou le mois

------------ couper ici ------------
@echo off
IF %1.==. (set d=%date%) ELSE (set d=%1)
Set j=%d:~0,2%
set i=%j:~0,1%
if %i% EQU 0 set j=%j:~1%
Set m=%d:~3,2%
set i=%m:~0,1%
if %i% EQU 0 set m=%m:~1%
Set a=%d:~6,4%
Set /A mod=a %% 4
Set fev(
if %mod% EQU 0 set /A fev)
Set quant=%j%
if %m% GTR 1 set /A quant=%quant% + 31
if %m% GTR 2 set /A quant=%quant% + fev
if %m% GTR 3 set /A quant=%quant% + 31
if %m% GTR 4 set /A quant=%quant% + 30
if %m% GTR 5 set /A quant=%quant% + 31
if %m% GTR 6 set /A quant=%quant% + 30
if %m% GTR 7 set /A quant=%quant% + 31
if %m% GTR 8 set /A quant=%quant% + 31
if %m% GTR 9 set /A quant=%quant% + 30
if %m% GTR 10 set /A quant=%quant% + 31
if %m% GTR 11 set /A quant=%quant% + 30
echo Le %d% est le jour %quant%
------------ couper ici ------------

Exemples :
I:VBS>quantieme.bat
Le 14/09/2006 est le jour 257

I:VBS>quantieme.bat 30/09/1949
Le 30/09/1949 est le jour 273

I:VBS>quantieme.bat 01/03/2000
Le 01/03/2000 est le jour 61

I:VBS>quantieme.bat 01/03/2001
Le 01/03/2001 est le jour 60

I:VBS>quantieme.bat 01/03/2004
Le 01/03/2004 est le jour 61

I:VBS>quantieme.bat 31/12/2006
Le 31/12/2006 est le jour 365


Donc dans ton cas, la ligne intéressante du batch est donc la suivante :
...
copy 97.20.2.103TOT%dernier%
192.168.15.31DTATA%dernier%%quant%.txt

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
---DGI972---
Gilles LAURENT a couché sur son écran :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Bonsoir,

-- Coupez ici : dnoty.cmd --

@echo off
setlocal enabledelayedexpansion

call :_dayNumberOfTheYear %date%
echo %_dnoty%

call :_dayNumberOfTheYear 27/04/2000
echo %_dnoty%

endlocal
goto :eof

for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (
set d=%%i& set m=%%j& set y=%%k
)

if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%

set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (
set bissex=True
) else (
set/a mod=%y%%%4
if !mod! equ 0 (
set/a mod=%y%%%100
if !mod! neq 0 set bissex=True
)
)

if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30

goto :eof

-- Coupez ici : dnoty.cmd --


Ca ne marche pas !!!
voici le message d'erreur:

C:>C:Quantieme.bat
Le système ne peut pas trouver le nom de fichier de commandes -
_dayNumberOfTheY
ear
Commande ECHO désactivée.

C:>

voici votre code:

@echo off
setlocal enabledelayedexpansion
call :_dayNumberOfTheYear %date%
echo %_dnoty%
endlocal
goto :eof
for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (set d=%%i& set
m=%%j& set y=%%k)
if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%
set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (set bissex=True)
else (set/a mod=%y%%%4 if !mod! equ 0 (set/a mod=%y%%%100 if !mod! neq
0 set bissex=True))
if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30
goto :eof


NB:Moi j'apelle ca:
_dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
une formulle magique (pour plus bas) ;-)

pouvez vous me numéroter les lignes SVP
Merci

Avatar
jackr13
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Gilles LAURENT a couché sur son écran :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Bonsoir,

-- Coupez ici : dnoty.cmd --

@echo off
setlocal enabledelayedexpansion

call :_dayNumberOfTheYear %date%
echo %_dnoty%

call :_dayNumberOfTheYear 27/04/2000
echo %_dnoty%

endlocal
goto :eof

for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (
set d=%%i& set m=%%j& set y=%%k
)

if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%

set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (
set bissex=True
) else (
set/a mod=%y%%%4
if !mod! equ 0 (
set/a mod=%y%%%100
if !mod! neq 0 set bissex=True
)
)

if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30

goto :eof

-- Coupez ici : dnoty.cmd --


Ca ne marche pas !!!
voici le message d'erreur:

C:>C:Quantieme.bat
Le système ne peut pas trouver le nom de fichier de commandes -
_dayNumberOfTheY
ear
Commande ECHO désactivée.

C:>

voici votre code:

@echo off
setlocal enabledelayedexpansion
call :_dayNumberOfTheYear %date%
echo %_dnoty%
endlocal
goto :eof
for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (set d=%%i& set m=%%j&
set y=%%k)
if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%
set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (set bissex=True)
else (set/a mod=%y%%%4 if !mod! equ 0 (set/a mod=%y%%%100 if !mod! neq 0
set bissex=True))
if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30
goto :eof


NB:Moi j'apelle ca:
_dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
une formulle magique (pour plus bas) ;-)

pouvez vous me numéroter les lignes SVP
Merci





Avatar
jackr13
bonjour,

Excusez-moi pour le message précédent envoyé trop vite.
Si ce Script ne fonctionne pas il semble qu'il y ait une mauvaise copie du
script initial. Une ligne au moins a été oublié. Il s'agit de
: _dayNumberOffTheYear
située immédiatement après des commentaires
ce qui explique le message d'erreur

"jackr13" a écrit dans le message de news:


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Gilles LAURENT a couché sur son écran :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:
Bonsoir,

-- Coupez ici : dnoty.cmd --

@echo off
setlocal enabledelayedexpansion

call :_dayNumberOfTheYear %date%
echo %_dnoty%

call :_dayNumberOfTheYear 27/04/2000
echo %_dnoty%

endlocal
goto :eof

for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (
set d=%%i& set m=%%j& set y=%%k
)

if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%

set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (
set bissex=True
) else (
set/a mod=%y%%%4
if !mod! equ 0 (
set/a mod=%y%%%100
if !mod! neq 0 set bissex=True
)
)

if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30

goto :eof

-- Coupez ici : dnoty.cmd --


Ca ne marche pas !!!
voici le message d'erreur:

C:>C:Quantieme.bat
Le système ne peut pas trouver le nom de fichier de commandes -
_dayNumberOfTheY
ear
Commande ECHO désactivée.

C:>

voici votre code:

@echo off
setlocal enabledelayedexpansion
call :_dayNumberOfTheYear %date%
echo %_dnoty%
endlocal
goto :eof
for /f "tokens=1-3 delims=/" %%i in ('echo %1') do (set d=%%i& set m=%%j&
set y=%%k)
if %d:~0,1% equ 0 set d=%d:~1,1%
if %m:~0,1% equ 0 set m=%m:~1,1%
set bissexúlse

set/a mod=%y%%%400
if %mod% equ 0 (set bissex=True)
else (set/a mod=%y%%%4 if !mod! equ 0 (set/a mod=%y%%%100 if !mod! neq 0
set bissex=True))
if %bissex% equ False set/a _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
if %bissex% equ True set/a _dnoty=(275*%m%/9)-(%m%+9)/12+%d%-30
goto :eof


NB:Moi j'apelle ca:
_dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
une formulle magique (pour plus bas) ;-)

pouvez vous me numéroter les lignes SVP
Merci









Avatar
Gilles LAURENT
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:

| Ca ne marche pas !!!

Bonsoir,

| voici le message d'erreur:
| C:>C:Quantieme.bat
| Le système ne peut pas trouver le nom de fichier de commandes -
| _dayNumberOfTheY
| ear
| Commande ECHO désactivée.

Je viens à l'instant de vous envoyer le script par voie de messagerie

| NB:Moi j'apelle ca:
| _dnoty=(275*%m%/9)-2*((%m%+9)/12)+%d%-30
| une formulle magique (pour plus bas) ;-)

ROTFL

C'est le ton généralement employé par J-C Bellamy (sauf sur certains
forum de discussions)
Je vous l'accorde, cela ce discute ... mais bon, "May the force be with
you !"

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
Gilles LAURENT
"jackr13" a écrit dans le message de
news:
| bonjour,

Bonsoir,

| Excusez-moi pour le message précédent envoyé trop vite.

Pas de problème ;-)

| Si ce Script ne fonctionne pas il semble qu'il y ait une mauvaise
| copie du script initial. Une ligne au moins a été oublié. Il s'agit de
|| _dayNumberOffTheYear

Pour éviter toute mauvaise interprétation du client de news, je tente
une indentation
:_dayNumberOfTheYear

| située immédiatement après des commentaires
| ce qui explique le message d'erreur

Merci Jack pour ce retour !

--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Avatar
---DGI972---
Il se trouve que Gilles LAURENT a formulé :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de news:

Bonsoir,

Je viens à l'instant de vous envoyer le script par voie de messagerie

ROTFL

C'est le ton généralement employé par J-C Bellamy (sauf sur certains
forum de discussions)
Je vous l'accorde, cela ce discute ... mais bon, "May the force be with
you !"


ET oui cela marche.
c'est un vilain : devant :_dayNumberOfTheYear.
Pourtant j'ai fait plusieur copier coller selon plusieur réglage de
quotage (j'utilise le logiciel MesNews avec le tournevis petit coucou à
Jean de Belgique).

c'est quoi ROTFL ?

merci encore
Assez rapide le retour. mdr
Je vais essayer tout de suite la formule magique de M BELLAMY.
;-)

1 2 3