Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1223 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Variable d'environnement [batch] Copier et dater du clic droit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable d'environnement [batch] Copier et dater du clic droit

n°1573691
rehties
Posté le 12-06-2007 à 12:04:17  profilanswer
 

Bonjour j'explique le titre, appel d un batch via une clee de registre au menu contextuelle, pour copier un fichier
 selectionné** en le renommant autommatiquement
de type
 
xcopy *.txt "%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%.txt"
 
mais voila je ne sais pas (si possible) d'indiquer dans le batch qu'il s' agit de la selection** seulement.
car xcopy *.txt copie tout les txt du repertoire....
Je suis simple utilisateur, mais je me doute qu'un autre language conviendrait mieux..... connais pas...
 
Deuxieme question  xcopy demande la specification : ( F=fichier, R=repertoire) mais je n'arrive pas a mettre une reponse dans batch??? on peut?
 
Merci.


Message édité par rehties le 13-06-2007 à 10:39:42
mood
Publicité
Posté le 12-06-2007 à 12:04:17  profilanswer
 

n°1573713
rehties
Posté le 12-06-2007 à 13:20:20  profilanswer
 

RE alors voila:

Code :
  1. Windows Registry Editor Version 5.00
  2. [HKEY_CLASSES_ROOT\txtfile\shell\Copie et date du jour\command]
  3. @="c:\\copyTEXTE.bat"


 
 
et puis a la racine de disk c:  copytexte.bat

Code :
  1. echo off
  2. xcopy *.txt "%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%.txt"
  3. fin


Ensuite le clic droit sur ce type de fichier, option de copie disponible.

n°1573760
rehties
Posté le 12-06-2007 à 14:29:48  profilanswer
 


Code :
  1. echo off
  2. md "%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%"
  3. echo [.ShellClassInfo]  >>%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%\Desktop.ini
  4. echo IconFile=%SystemRoot%\Resources\Icones\glass\GlassPhotoshop.ico >>%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%\Desktop.ini
  5. echo IconIndex=0 >>%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%\Desktop.ini
  6. attrib +S %date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%
  7. attrib +H %date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%\Desktop.ini
  8. fin


Ce batch pour creer un repertoire dans celui ci le fichier desktop.ini pour l'icone du repertoire, Merci


Message édité par rehties le 12-06-2007 à 16:14:26
n°1574219
rehties
Posté le 13-06-2007 à 10:41:24  profilanswer
 


En faite, il faudrait une variable d'environnement qui pointe vers la selection ???
 
 
ca existe ?

n°1574469
rehties
Posté le 13-06-2007 à 15:36:03  profilanswer
 


une variable semblable à  %cd% qui représente le chemin du dossier courant dans lequel on est.
 
Sauf qui me faut le nom du fichier courant ....    :heink:  ca existe pas ???  merci, une petite reponse SVP :bounce:

n°1574586
webding
Posté le 13-06-2007 à 19:05:33  profilanswer
 

Pour le non du fichier courant tu fait ceci:

Code :
  1. %~dpnx0


 
d représent la lettre du lecteur
p représente le chemin du fichier
n représente le nom du fichier
x représent l'extension du fichier


Message édité par webding le 13-06-2007 à 19:07:03
n°1574757
rehties
Posté le 14-06-2007 à 10:13:54  profilanswer
 

Merci pour ta reponse  :)  
 
merci pour  "%~dpnx0"  par contre je me suis  peut etre mal exprimé, car %~dpnx0 donne le nom courant du "script" :non:  
 
Je cherche une variable pour utiliser le nom courant de la cible  :pt1cable: (comme  %cd%  pour le chemin %~cdnx0 fonctionne pas)

n°1575289
webding
Posté le 15-06-2007 à 08:58:52  profilanswer
 

rehties a écrit :

Merci pour ta reponse  :)  
 
merci pour  "%~dpnx0"  par contre je me suis  peut etre mal exprimé, car %~dpnx0 donne le nom courant du "script" :non:  
 
Je cherche une variable pour utiliser le nom courant de la cible  :pt1cable: (comme  %cd%  pour le chemin %~cdnx0 fonctionne pas)


n°1575290
webding
Posté le 15-06-2007 à 08:59:48  profilanswer
 

Tu veut le chemin du répertoire courant ?

n°1575393
rehties
Posté le 15-06-2007 à 11:09:50  profilanswer
 


Voila,
 
- exemple  -  mon batch (copytexte.bat) ce trouve a  %systemroot%,
                 -  la cible   yy.txt dans c:\documents\yy.txt  
                 -  click droit  sur le fichier cible (*txt) pour appeller le fichier.bat via le registre
 
- resultats -
%~dpnx0 dans le batch (specifie le fichier courant du script )
        - dans l'exemple donne %systemtoot%\copytexte.bat  :pfff:  
 
 
%CD% dans le batch (specifie le lecteur et le dossier en cours *)
        - dans l 'exemple %cd% donne C:\documents  :)  
 
- la cible -
%??  je cherche une commande pour donner c:\documents\yy.txt  :??:  
 
peut etre qu'il existe une commande complémentaire à %cd /??, peut etre une commande pour lire le fichier et recuperer le nom,  

mood
Publicité
Posté le 15-06-2007 à 11:09:50  profilanswer
 

n°1575430
webding
Posté le 15-06-2007 à 11:58:33  profilanswer
 

Donc pour récupérer le chemin du fichier.txt sur le quel tu fait un clique droit c'est: %1

Code :
  1. %1


Message édité par webding le 15-06-2007 à 11:58:51
n°1575518
rehties
Posté le 15-06-2007 à 13:45:51  profilanswer
 

le probleme, je ne sais pas dans ce cas comment l'ecrire
 
xcopy %1 "%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%.txt"
 - fichier introuvable
 
xcopy %1
 nbre de parametre non valide

 
xcopy %1.txt
 fichier intriuvable
 
xcopy cd\%1  
 chemin d acces non valide
 
xcopy cd %1  
 fichier introuvable
 
xcopy %cd\%1  
  introuvable
 
xcopy %cd%\%1  
 introuvable

n°1575524
webding
Posté le 15-06-2007 à 13:50:19  profilanswer
 

Essaye de mettre echo %1 dans ton batch pour voir si ca affiche bien le nom du fichier.
 
Si non dans ta clé rajoute %1:

Code :
  1. [HKEY_CLASSES_ROOT\txtfile\shell\Copie et date du jour\command]
  2. @="c:\\copyTEXTE.bat %1"

n°1575530
oxman
xiii
Posté le 15-06-2007 à 13:53:42  profilanswer
 

La méthode plus simple c'est encore d'utiliser un vrai OS genre Linux pour faire ça :p


---------------
LeRobot : un bot discord qui permet faire des stats sur vos temps de jeux
n°1575589
rehties
Posté le 15-06-2007 à 14:54:19  profilanswer
 


 :fou: idem en resutat :   "c:\\copyTEXTE.bat %1"
 

n°1575590
webding
Posté le 15-06-2007 à 14:55:30  profilanswer
 

ca devrai fonctionner

n°1575593
rehties
Posté le 15-06-2007 à 15:02:43  profilanswer
 

Merci,
 
Je cherche toujours......
En faite prend en copy tous les .txt du repertoire ......  peut etre VBs  ?? :bounce:

n°1612154
rodolphe28
Posté le 16-09-2007 à 23:22:11  profilanswer
 

rehties a écrit :

Merci,
 
Je cherche toujours......
En faite prend en copy tous les .txt du repertoire ......  peut etre VBs  ?? :bounce:


----------------------------------------
>>> VOILA LA SOLUTION
(quel que soit le type du fichier)
et merci pour l'idée, ça va bien me servir
----------------------------------------
1) REGISTRE : c:\CopyTEXTE.bat %1
2) BATCH c:\CopyTEXTE.bat (les rem sont pour le debug)
rem echo %~dpnx1
rem pause
rem copy %~dpnx1 %~dpn1ZZZ%~x1
copy %~dpnx1 %~dpn1%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%%~x1
pause
RESULTAT:  
- fichier "zzz.txt" copié en "zzz-07-09-16_23-09.txt"
- seul le fichier sélectionné est copié

n°1612157
rodolphe28
Posté le 16-09-2007 à 23:36:40  profilanswer
 

rodolphe28 a écrit :


----------------------------------------
>>> VOILA LA SOLUTION
(quel que soit le type du fichier)
et merci pour l'idée, ça va bien me servir
----------------------------------------
1) REGISTRE : c:\CopyTEXTE.bat %1
2) BATCH c:\CopyTEXTE.bat (les rem sont pour le debug)
rem echo %~dpnx1
rem pause
rem copy %~dpnx1 %~dpn1ZZZ%~x1
copy %~dpnx1 %~dpn1%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%%~x1
pause
RESULTAT:  
- fichier "zzz.txt" copié en "zzz-07-09-16_23-09.txt"
- seul le fichier sélectionné est copié


 
###  complément ###
pour permettre d'appliquer cette commande à tout type de fichier,  
la clé BDR est celle-ci :  
(adapter le nom du batch)
------------------------------------------
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\*\shell\Copie_Historisée]
 
[HKEY_CLASSES_ROOT\*\shell\Copie_Historisée\Command]
@="c:\\CopyHistorisee.bat %1"
------------------------------------

n°1614076
rehties
Posté le 22-09-2007 à 11:28:10  profilanswer
 

:jap: excellent , merci  :jap:  
 
si le fichier ce trouve dans un repertoire comprenant dans le nom un espace cela fonctionne plus .. :??:

n°1619495
rehties
Posté le 05-10-2007 à 10:55:30  profilanswer
 

Y a t-il une solution ?
 
Pour le chemin du fichier les espaces sont pas pris en compte
 
%~dpnx1     donne c:\documents au lieu de c:\documents and settings
 
 :??:

n°1619895
blastkille​r
Posté le 05-10-2007 à 17:27:35  profilanswer
 

il faut mettre des guillemets :
"%~dpnx1"

n°1619900
rehties
Posté le 05-10-2007 à 17:47:15  profilanswer
 

:non:  = "c:\documents"

n°1619910
wackevat
Posté le 05-10-2007 à 18:02:13  profilanswer
 

.bat :
copy "%~dpnx1" "%~dpn1%date:~8,2%-%date:~3,2%-%date:~0,2%_%time:~0,2%-%time:~3,2%%~x"
 
.reg :
@="c:\\CopyHistorisee.bat \"%1\""

n°1619916
rehties
Posté le 05-10-2007 à 18:19:18  profilanswer
 

:)   :jap:  
au top merci a vous, j' étais en train de chercher pour les ""  , mais je ne comprend pas au .reg ce que represente \"" .. si vous voulez bien m 'expliquer?  
 
 
 
 
encore merci  
 
sinon avec quelle commande (if?) rajouter une condition qui serait:
 
si "le nom commence (par 2chiffre)-(2chiffre)-(2chiffre)"
 
alors
renommer les 8 "caractere" par la nouvelle date ????


Message édité par rehties le 05-10-2007 à 19:02:38
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Variable d'environnement [batch] Copier et dater du clic droit

 

Sujets relatifs
[php] variable (caché) dans lienExcel - VBA - Copier du texte au double clic [résolu]
Retourner variable js dans champs texte d'un formulaire[javascript][resolu] variable php dans javascript
[Batch] [Résolu]Analyse d'une chaine de caractères + redimensionnementFonction Array() et variable, possible?
[php] Comment récupéré les trois premieres lettre d'une variable?mettre le contenu d'un fichier dans une variable
Possible ? Stocker dans une variable de l'HTML généré par une page PHP 
Plus de sujets relatifs à : Variable d'environnement [batch] Copier et dater du clic droit


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR