Variable d'environnement [batch] Copier et dater du clic droit - Shell/Batch - Programmation
Marsh Posté le 12-06-2007 à 13:20:20
RE alors voila:
Code :
|
et puis a la racine de disk c: copytexte.bat
Code :
|
Ensuite le clic droit sur ce type de fichier, option de copie disponible.
Marsh Posté le 12-06-2007 à 14:29:48
Code :
|
Ce batch pour creer un repertoire dans celui ci le fichier desktop.ini pour l'icone du repertoire, Merci
Marsh Posté le 13-06-2007 à 10:41:24
En faite, il faudrait une variable d'environnement qui pointe vers la selection ???
ca existe ?
Marsh Posté le 13-06-2007 à 15:36:03
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 .... ca existe pas ??? merci, une petite reponse SVP
Marsh Posté le 13-06-2007 à 19:05:33
Pour le non du fichier courant tu fait ceci:
Code :
|
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
Marsh Posté le 14-06-2007 à 10:13:54
Merci pour ta reponse
merci pour "%~dpnx0" par contre je me suis peut etre mal exprimé, car %~dpnx0 donne le nom courant du "script"
Je cherche une variable pour utiliser le nom courant de la cible (comme %cd% pour le chemin %~cdnx0 fonctionne pas)
Marsh Posté le 15-06-2007 à 08:58:52
rehties a écrit : Merci pour ta reponse |
Marsh Posté le 15-06-2007 à 11:09:50
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
%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,
Marsh Posté le 15-06-2007 à 11:58:33
Donc pour récupérer le chemin du fichier.txt sur le quel tu fait un clique droit c'est: %1
Code :
|
Marsh Posté le 15-06-2007 à 13:45:51
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
Marsh Posté le 15-06-2007 à 13:50:19
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 :
|
Marsh Posté le 15-06-2007 à 13:53:42
La méthode plus simple c'est encore d'utiliser un vrai OS genre Linux pour faire ça
Marsh Posté le 15-06-2007 à 15:02:43
Merci,
Je cherche toujours......
En faite prend en copy tous les .txt du repertoire ...... peut etre VBs ??
Marsh Posté le 16-09-2007 à 23:22:11
rehties a écrit : Merci, |
----------------------------------------
>>> 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é
Marsh Posté le 16-09-2007 à 23:36:40
rodolphe28 a écrit : |
### 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"
------------------------------------
Marsh Posté le 22-09-2007 à 11:28:10
excellent , merci
si le fichier ce trouve dans un repertoire comprenant dans le nom un espace cela fonctionne plus ..
Marsh Posté le 05-10-2007 à 10:55:30
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
Marsh Posté le 05-10-2007 à 18:02:13
.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\""
Marsh Posté le 05-10-2007 à 18:19:18
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 ????
Marsh Posté le 12-06-2007 à 12:04:17
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