IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Récupérer le type mime d'un fichier.


Sujet :

Scripts/Batch

  1. #1
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut Récupérer le type mime d'un fichier.
    Bonjour,

    Ca me parait un poil idiot comme question, mais ça fait deux heures que je cour après : "Comment connaître le type mime d'un fichier en ligne de commande sous Windows ?"

    J'ai longuement cherché sur Google, pour ne pas le citer, rien à faire... J'ai des renvoies sur PHP, la commande "file" sous Linux etc.

    Donc si quelqu'un aurait une réponse ^^ (Même si c'est un script car visiblement pas de commande native pour cela sous Windows).

    Cordialement,
    Inazo.

  2. #2
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    il te faut une table de correspondance MIME -> http://technet.microsoft.com/en-us/l.../bb742440.aspx

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Je ne sais pas si cela peut t'aider, mais tu peux consulter ce tutoriel PowerShell qui propose un script permettant de retrouver les codages des types de fichiers (MIME) et/ou leur 'catégorie'.

  4. #4
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    si j'ai bien compris ta demande:

    file.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    if "%~1"=="" (for %%a in (*.*) do Call :fmt "%%a") Else (Call :fmt %1)
    goto :EOF
    :fmt
    If "%~1"=="" goto :EOF
    Set mimeType=###
    for /f "tokens=3*" %%a in ('
      2^>nul reg query "hkcr\%~x1" /v "content type"^|find "REG_SZ"
     ') do set "mimeType=%%b"
    echo=%~1%~x1: %mimeType%
    Shift 
    goto :fmt
    exemple d'utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    c:\> file.bat fichier.htm
    fichier.htm.htm: text/html
    
    c:\> file.bat
    10e9557388e59a17.htm.htm: text/html
    HyCam2.exe.exe: application/x-msdownload
    4444444.vbs.vbs: ###
    Nouveau Document texte.txt.txt: text/plain
    5f27ee362059b209.htm.htm: text/html

  5. #5
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Y'a juste un hic, c'est que dans la bdr il n'y en a pas énormément, il manque par exemple, tout au moins sur ce PC, chm hlp pdf ... et plein d'autres.

    Sinon pour l'idée.

  6. #6
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Citation Envoyé par minnesota Voir le message
    Y'a juste un hic, c'est que dans la bdr il n'y en a pas énormément
    il y'en a assez pour t'en convaincre, voici un autre script qui va lister tous les types mime des fichiers dans votre machine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @Echo oFF
    For /F "Delims==" %%q In ('assoc') Do (
      For /F "Tokens=3*" %%o In ('
        "2>&1 Reg Query "HKCR\%%q" /V "Content Type"|Find "G_S""
      ') Do ((Set x=                    %%q)
         Call Echo=%%x:~-20%%  %%p))
    Set/P=  Done

  7. #7
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut


    P.-S. :
    Pourquoi t'ajoutes des espaces pour les enlever juste après ?
    Sinon, si le cœur t'en dit, quand tu as le temps, fais un tour par ici. Ça me ferait plaisir. Merci

  8. #8
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    Citation Envoyé par minnesota Voir le message
    P.-S. :
    Pourquoi t'ajoutes des espaces pour les enlever juste après ?
    c'est une façon de formater la sortie: grosso-modo c'est pour avoir des espaces fixes.


    Citation Envoyé par minnesota Voir le message
    Sinon, si le cœur t'en dit, quand tu as le temps, fais un tour par ici. Ça me ferait plaisir. Merci

    l'utilitaire de recherche de win est presque complet:
    - une interface graphique
    - recherche multiple de fichiers
    - recherche dans les sources des fichiers
    - recherche avancée (par date/taille..etc)
    - possibilité de personnalisation
    - recherche d'objet "fichier/personne/ordinateur"
    - recherche par type "image video ..etc"
    ..etc


    donc, recréer la roue n'est pas, à mon avis, une bonne solution... Enfin tu peux, créer ce que l'utilitaire de recherche de windows ne permet pas:

    - requête par RegExp
    - rechercher/remplacer (émulation de fr.exe)
    - ..etc

    donc voilà..
    concernant les commandes NT tu peux utiliser FindStr comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /smip "hello" *.txt *.csv *.log

  9. #9
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Dommage, si t'avais posté dans la bonne discussion j'aurais pu à mon tour te répondre.

  10. #10
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut
    Bonjour,

    Merci à tous pour vos réponse (je reviens un peu tard mais je n'ai pas été prévenu des autres réponses par e-mail...).

    Bref,

    Si j'ai bien compris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    if "%~1"=="" (for %%a in (*.*) do Call :fmt "%%a") Else (Call :fmt %1)
    goto :EOF
    :fmt
    If "%~1"=="" goto :EOF
    Set mimeType=###
    for /f "tokens=3*" %%a in ('
      2^>nul reg query "hkcr\%~x1" /v "content type"^|find "REG_SZ"
     ') do set "mimeType=%%b"
    echo=%~1%~x1: %mimeType%
    Shift 
    goto :fmt
    On se base sur l'extension du fichier ? Car pour être plus précis les fichiers que je veux tester sont déposer par X utilisateurs et bien sûr il y a un risque qu'un fichier ne soit pas vraiment celui qu'on veut bien nous faire croire.

    Exemple sous Linux avec "file -i" il regarde les bits "magique" du fichier pour lui attribuer sont type mime ceci indépendamment de l'extension :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    inazo@Inazo:~/Bureau$ file -i 0222.txt 
    0222.txt: application/pdf; charset=binary
    Je vais quand même tester les codes que vous m'avez donné pour voir le fonctionnement en direct.

    Merci à vous.

    Cordialement,

  11. #11
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Dans ce cas, il faut trouver l'équivalent sous Windows et peut être même que la commande file y a été portée.

  12. #12
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut
    Bonjour,

    Oui en effet je recherche si elle a été porté mais pour le moment rien trouvé, car visiblement ce n'est pas natif dans Windows, surprenant quand même.

    Si je fini par trouver je vous tiendrais bien entendu au courant

    Cordialement,

  13. #13
    Membre chevronné

    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Décembre 2003
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2003
    Messages : 333
    Billets dans le blog
    1
    Par défaut
    assoc te suffit pas ?

  14. #14
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut
    assoc te suffit pas ?
    Non.

    Car "assoc" c'est pour lister les associations de programme via l'extension, donc pas ce que je veux. Il faut que je trouve un moyen de faire comme "file" dans linux qui fait abstraction de l'extension pour nous donner un mime type.

    Cordialement,

  15. #15
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Inazo Voir le message
    Oui en effet je recherche si elle a été porté mais pour le moment rien trouvé, car visiblement ce n'est pas natif dans Windows
    Consulte l’API FindMimeFromData lié à IE.

Discussions similaires

  1. récuperer le type mime à partir du fichier
    Par isma92 dans le forum Langage
    Réponses: 3
    Dernier message: 09/02/2007, 12h28
  2. Fiabiliser la détection du type Mime d'un fichier
    Par SegmentationFault dans le forum Langage
    Réponses: 20
    Dernier message: 19/12/2006, 19h49
  3. [FTP] Connaitre le type mime d'un fichier
    Par jak0 dans le forum Langage
    Réponses: 15
    Dernier message: 18/07/2006, 12h32
  4. Type Mime d'un fichier
    Par partyboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/04/2006, 11h04
  5. [struts] déterminer le type Mime d'un fichier
    Par k4eve dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/06/2004, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo