Copier des fichier que si le fichier_source>fichier_destination

Résolu/Fermé
Utilisateur anonyme - Modifié par lionhell454 le 12/11/2013 à 07:11
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 14 nov. 2013 à 08:57
Bonjour,

je voudrais trouver un moyen genre via batch/cmd avec xcopy mais j'ai pas trouver l'argument nécessaires pour spécifier que le déplacement du fichier source a lieu que s'il est plus lourd que le fichier destination. sinon il passe , ne déplace pas le fichier.

en fait je veut même pas les copier, les déplacer cela suffirait.
a chaque fois je doit spécifier via windows si oui non, comme je traite entre 1000 a 6000 fichiers, ca fait 6000 click réfléchit ! c'est long lol

j'ai fait un stage java mais franchement un peu oublier.
mais bon si on m'aide je peut peut etre essayer.

je fais pas mal de php mais la! même avec easy php je vois pas comment manipuler des files de cette manière, d'ailleur ca doit etre tout simplement impossible.

bref, j'ai cherché coté logiciel mais rien trouvé de concluant.
enfin bref un peu perdu...


merci de m'éclairer si vous avez une torche!
Big up à la communauté!



Plusieurs problèmes font parfois une solution...
A voir également:

4 réponses

dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
12 nov. 2013 à 10:07
hello
%%~za retourne la taille du fichier
@echo off

set SRC=fichier1
set DST=fichier2
for %%a in ("%SRC%") do set t1=%%~za
for %%b in ("%DST%") do set t2=%%~zb
if %t1% GTR %t2% move /y "%SRC%" "%DST%"
1
c'est parfait merci dubcek

voici le code juste re adapter pour comparer le contenue d'un dossier avec un autre. si ca peut aider quelqu'un d'autre (rajouter @echo off pour masquer l'affichage de la console)...

set SRC=C:\Users\lionpc1.2\Desktop\test\sources\*

set DST=C:\Users\lionpc1.2\Desktop\test\dest\*
for %%a in ("%SRC%") do set t1=%%~za
for %%b in ("%DST%") do set t2=%%~zb
if %t1% GTR %t2% move /y "%SRC%" "%DST%"
pause

je vais regarder je devrais trouver mais je n'ai juste pas compris ceci en gras:
if %t1% GTR %t2% move  /y "%SRC%" "%DST%"

"GTR" c'est une commande de comparaison?

en tout cas merci, comme je faisait tout a la main, je te doit 10 vie la !!! mdr...
0
ah non la je me suis planter
je cible sur un dossier en fait il me compare que la derniere valeur je vais essayer de trouver la suite, une autre boucle a faire surement....
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
13 nov. 2013 à 08:51
essayer avec une boucle
cd /d C:\Users\lionpc1.2\Desktop\test\sources

set DST=C:\Users\lionpc1.2\Desktop\test\dest
for %%a in (*.*) do (
set SRC=%%a
for %%b in ("%SRC%") do set t1=%%~zb
for %%c in ("%DST%\%SRC%") do set t2=%%~zc
if %t1% GTR %t2% move /y "%SRC%" "%DST%"
)
GTR veut dire plus grand que, voir dans help if
l'explication de %~zX est dans help for
0
Utilisateur anonyme
13 nov. 2013 à 08:52
un grand merci je teste ca des se soir....
0
Utilisateur anonyme
13 nov. 2013 à 09:02
j'ai essayer super vite fait je doit vraiment y aller.
Mais cela n as pas marcher y a un truc qui a l air de cloché dans la boucle que je ne comprend pas.
je regarderais ce soir
a+
0
Utilisateur anonyme
12 nov. 2013 à 08:37
Bonjour

Je ne vois pas où il y a un problème en php. Il existe une fonction qui te donne la taille d'un fichier, d'autres pour copier ou déplacer un fichier, et tu sais comparer deux nombres. Et je ne connais pas Java, mais c'est certainement la même chose.
À quel niveau rencontres-tu une difficulté ?
0
salut a tous^^
merci pour toutes vos réponses
je suis rentré tard je vais regarder de suite toutes vos possibilités
je vais commence par regarder le batch, et voir en php avec un alias sur le dossier si y a une fonction, je vais approfondir cela....

À quel niveau rencontres-tu une difficulté ?

tout les langages a part java (mais j'aime moins. ) j'ai tout appris tout seul et je m'en sert surtout pour faire des sortes d'interfaces (php en local surtout) et pas mal de fichier batch (des taches)...
du coup j'ai du sauter pas mal étapes et la bien c'est le genre d'exemple ou je suis un peut perdu, mais avec vos conseils cela devrait rentrer dans l'ordre.
je pense pouvoir exploiter la solution de dubcek, cela devrait etre la meilleur pour ce que je vais faire je savait pas que %%~ retourne la taille du fichier .

je tiens au jus au plus tard demain et un grand merci a vous deux^^



Plusieurs problèmes font parfois une solution...
0
Utilisateur anonyme
13 nov. 2013 à 08:23
Pour faire ce que tu veux, il faut :
- parcourir le dossier source
- pour chaque fichier rencontré, tester s'il existe aussi dans le dossier destination (ce que ne fait pas la méthode de dubcek, d'où problème)
- si oui, comparer les tailles
- si le source est plus long, le recopier vers la destination

Il existe des fonctions toutes faites pour chacune de ces opérations en php. Alors comme tu dis que tu en fais pas mal, je demande où est la difficulté
0
Utilisateur anonyme
13 nov. 2013 à 08:44
je te remercie,
la je doit bouger je regarderais ce soir des que j ai du temps, mais oui en fait! j'aimerais savoir faire les deux temps qu'a faire lol...
mais c'est a dire quant je dit j en fait pas mal c'est que je m en sert souvent mais c'est pas pour cela que je connais toutes les fonctions... j'ai appris sur le tas et passer un peu outre ce qui me server pas sur le coup, meme si avant je savais plus ou moins naviguer avec dans les dossier/ ecrire etc mais ca fait un peu longtemps...

mais bon tu me donne la méthode avec un peu de temps je devrais pouvoir y arriver à m en sortir^^

merci je tiens au jus...
0