JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Sub: données d'un fichier Mer 1 Jan 2014 - 20:09 | |
| Après la dernière sub de 2013 hier soir, la 1ère de l'année 2014. Juste pour montrer l'utilité d'un petit fichier batch, exécuté depuis Panoramic, une sub qui donne les caractéristiques d'un fichier: - Code:
-
DIM f$, fr$ f$ = "C:\Program Files (x86)\Panoramic Editor\PANORAMIC_EDITOR.exe": ' <- exemple fr$ = "C:\Resul.txt"
WIDTH 0,640: HEIGHT 0,180 MEMO 1: FULL_SPACE 1: FONT_NAME 1,"Lucida Console" FileInfos(f$,fr$) FILE_LOAD 1, fr$: FILE_DELETE fr$ END ' ================================================= SUB FileInfos(f$,fr$) ' Données du fichier f$ -> fr$ DIM_LOCAL a$,fb$: fb$ = "C:\Carfich.bat" DATA "@echo off" DATA "FOR %%? IN ("+CHR$(34)+f$+CHR$(34)+") DO (" DATA " ECHO Nom de fichier : %%~n? >"+fr$ DATA " ECHO Extension : %%~x? >>"+fr$ DATA " ECHO Nom en format 8.3 : %%~sn? >>"+fr$ DATA " ECHO Attributs : %%~a? >>"+fr$ DATA " ECHO Drive : %%~d? >>"+fr$ DATA " ECHO Taille fichier : %%~z? >>"+fr$ DATA " ECHO Dernière modification: %%~t? >>"+fr$ DATA " ECHO Dossier parent : %%~dp? >>"+fr$ DATA " ECHO Chemin complet : %%~f? >>"+fr$ DATA " ECHO Chemin en format 8.3 : %%~sf? >>"+fr$ DATA " ECHO Emplacement dans PATH: %%~dp$PATH:? >>"+fr$ DATA ")" FILE_OPEN_WRITE 1,fb$ READ a$: WHILE a$<>"@echo off": READ a$: END_WHILE WHILE a$<>")": FILE_WRITELN 1,a$: READ a$: END_WHILE: FILE_WRITELN 1,a$ FILE_CLOSE 1 EXECUTE_WAIT fb$ FILE_DELETE fb$ END_SUB avec le petit code pour l'appeler. Là j'ai mis toutes les possibilités, mais il est bien évident que certaines sont sans grand intérêt (donc à supprimer), d'autres par contre sont intéressantes, pour obtenir notamment: - le nom du fichier en version courte (pour les noms de fichiers qui contiennent des espaces). - les attributs du fichier - la taille du fichier - les date et heure de dernière modification - le chemin complet du fichier en version courte. Et c'est évidemment à adapter, les textes explicatifs du batch ne sont là que pour montrer l'usage. D'ailleurs je m'aperçois que j'ai fait quelque chose d'analogue il n'y a pas longtemps, mais en un peu plus compliqué avec moins de renseignements (notamment les versions 'courtes' des chemins d'accès). https://panoramic.1fr1.net/t3214-sub-infos-fichierEt attention: dans le post cité en référence, ça ne marchait que pour les versions de Windows égales ou supérieures à Vista, du fait de la redirection | clip vers le clipboard, fonction qui n'existe pas (encore) sous XP (jjn4 j'ai édité pour toi, chez qui ça ne marchait pas). On peut préférer des fonctions séparées, mais attention, les sorties se feront dans le clipboard et ça ne marchera qu'à partir de Vista (contrairement à la sub ci-dessus) (mais on pourrait également faire les sorties dans un fichier, comme ci-dessus, en remplaçant les | clip par >fichierdesortie): - Code:
-
SUB FileSize(f$) ' Taille fichier f$ -> clipboard DIM_LOCAL fb$: fb$ = "C:\Carfich.bat" FILE_OPEN_WRITE 9,fb$ FILE_WRITELN 9, "@echo off" FILE_WRITELN 9, "FOR %%? IN ("+CHR$(34)+f$+CHR$(34)+") DO ECHO %%~z? | clip" FILE_CLOSE 9 EXECUTE_WAIT fb$: FILE_DELETE fb$ END_SUB
SUB FileDate(f$) ' Date/Heure fichier f$ -> clipboard DIM_LOCAL fb$: fb$ = "C:\Carfich.bat" FILE_OPEN_WRITE 9,fb$ FILE_WRITELN 9, "@echo off" FILE_WRITELN 9, "FOR %%? IN ("+CHR$(34)+f$+CHR$(34)+") DO ECHO %%~t? | clip" FILE_CLOSE 9 EXECUTE_WAIT fb$: FILE_DELETE fb$ END_SUB
SUB FileShort(f$) ' Chemin court fichier f$ -> clipboard DIM_LOCAL fb$: fb$ = "C:\Carfich.bat" FILE_OPEN_WRITE 9,fb$ FILE_WRITELN 9, "@echo off" FILE_WRITELN 9, "FOR %%? IN ("+CHR$(34)+f$+CHR$(34)+") DO ECHO %%~sf? | clip" FILE_CLOSE 9 EXECUTE_WAIT fb$: FILE_DELETE fb$ END_SUB
SUB FileLines(f$) ' Nombre de lignes d'un fichier texte f$ -> clipboard DIM_LOCAL fb$: fb$ = "C:\Carfich.bat" FILE_OPEN_WRITE 9,fb$ FILE_WRITELN 9,"@echo off" FILE_WRITELN 9,"FOR /f %%? IN ('type "+CHR$(34)+f$+CHR$(34)+"^|find "+CHR$(34)+CHR$(34)+" /v /c') DO set /a cnt=%%?" FILE_WRITELN 9,"@ECHO %cnt% | clip" FILE_CLOSE 9 EXECUTE_WAIT fb$: FILE_DELETE fb$ END_SUB
| |
|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Sub: données d'un fichier Jeu 2 Jan 2014 - 9:03 | |
| Pour XP, on peut télécharger clip.exe iciPapydall avait donné la recette dans son article sur la ligne de commande | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 2 Jan 2014 - 12:56 | |
| chez moi, avec W7 : "File access denied" | |
|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Sub: données d'un fichier Jeu 2 Jan 2014 - 14:14 | |
| Bonjour Ygeronimi, Il faut mettre: fr$ = "C:\temp\Resul.txt" au lieu de fr$ = "C:\Resul.txt" fb$ = "C:\temp\Carfich.bat" au lieu de fb$ = "C:\Carfich.bat" et ça marche! A+ | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Sub: données d'un fichier Jeu 2 Jan 2014 - 14:24 | |
| C’est parce que W7 n’aime pas qu’on aille tripoter sa racine ! (la racine de son c) | |
|
mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Sub: données d'un fichier Jeu 2 Jan 2014 - 15:36 | |
| Je vois que vous etes tous en forme je profite du post pour vous souhater une bonne annee | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Sub: données d'un fichier Jeu 2 Jan 2014 - 16:25 | |
| Tu as raison bignono, c'est mieux avec C:\Temp, c'est ce qu'il y avait au départ mais j'ai mis ensuite directement sous la racine de C: pour que ce soit plus universel et comme dit papydall en langage imagé ça ne plait pas à tous les systèmes, il faut avoir je pense des privilèges particuliers (administrateur je pense). Et merci jean_debord pour le tuyau pour clip (je l'avais d'ailleurs moi-même sous XP).
Bonne année également à toi mindstorm ! | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 2 Jan 2014 - 17:15 | |
| Merci Bignono. Effectivement, cela fonctionne mieux en passant par "Temp". | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Sub: données d'un fichier Jeu 2 Jan 2014 - 18:08 | |
| C'est le problème de tous ces petits fichiers de manoeuvre temporaires qu'on ne sait pas trop où mettre.
C'est pourquoi (je me répète) je déclare depuis toujours une partie de la mémoire vive en volume virtuel (Ramdisk Z:), 32 M ça suffit largement et ça ne prend que très peu sur l'ensemble de nos volumes de mémoire actuels (minimum 2G). C'est bien pratique, ça évite les dossiers temporaires, ça se manipule comme n'importe quel disque auxiliaire, et c'est nettoyé automatiquement à chaque extinction du pc (ce dont il faut avoir bien conscience !). | |
|
Contenu sponsorisé
| Sujet: Re: Sub: données d'un fichier | |
| |
|