Question equivalent commande 'file' unix sous powershell

Plus d'informations
il y a 15 ans 2 semaines #9037 par davidovich
Bonsoir à tous,

Je voulais savoir si il existait sous powershell l'equivalent de la commande 'File' sous unix, c'est-à-dire une commende capable de définir le type d'un fichier sans se baser sur son extension.

Merci par avance. powershell-scripting.com/components/com_.../emoticons/smile.png

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 semaines #9052 par Matthew BETTON
Salut,

A ma connaissance il n'existe pas de Cmdlet équivalente.

Cependant, j'ai retrouvé un bout de code en C# et je l'ai traduit en PowerShell...

Si ça peut t'aider :

[code:1]Function Get-MimeType([string] $fileName)
{
[String]$mimeType = \"application/unknown\"
[String]$ext = ([System.IO.Path]::GetExtension($fileName)).ToLower()
[Microsoft.Win32.RegistryKey]$regKey = [Microsoft.Win32.Registry]::ClassesRoot.OpenSubKey($ext)
if ($regKey -ne $null -and $regKey.GetValue(\"Content Type\"«») -ne $null){
$mimeType = ($regKey.GetValue(\"Content Type\"«»)).ToString()
}
return $mimeType;
}[/code:1]

Si tu exécutes la commande suivante :

[code:1]Get-MimeType \"C:\Temp\test.doc\"[/code:1]

Tu auras comme réponse :

[code:1]application/msword[/code:1]

@ +
;)<br><br>Message édité par: Matthew BETTON, à: 2/03/11 22:34

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 semaine #9111 par Matthew BETTON
<br><br>Message édité par: Matthew BETTON, à: 8/03/11 22:15

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 semaine #9112 par Matthew BETTON
Ce sont les Metadata.

Quelques informations ici : blogs.technet.com/b/heyscriptingguy/arch...-files-metadata.aspx

Message édité par: Matthew BETTON, à: 8/03/11 22:15

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 1 semaine #9113 par Matthew BETTON
Bof pour le Type MIME du fichier...

Allez hop... Ne connaissant finalement pas le besoin, voici un autre script. Celui-ci détermine cette fois-ci le type de fichier (présent dans les Metadata), tel qu'il est inscrit dans l'onglet Détails des propriétés du fichier (clique droit sur le fichier =&gt; propriétés =&gt; onglet Détails =&gt; ligne Type) :

[code:1]Function Get-FileTypeProperty([string]$fileName){
try{
$file = Get-ChildItem $fileName -ErrorAction Stop
}
catch{
return $Error[0].Exception.message
}

$shell = new-object -com shell.application
$folder = $shell.nameSpace($file.DirectoryName)
$item = $folder.parseName($file.Name)
$type = $folder.GetDetailsOf($item, 2)

return \&quot;Le type du fichier $filename est « $type »\&quot;

}[/code:1]

Quelques exemples de ce que cela peut donner :


[code:1]PS&gt; Get-FileTypeProperty c:\temp\test.html
PS&gt; Le type du fichier c:\temp\test.html est « Document HTML »[/code:1]

[code:1]PS&gt; Get-FileTypeProperty c:\temp\test.doc
PS&gt; Le type du fichier c:\temp\test.doc est « Document Microsoft Office Word 97 - 2003 »[/code:1]

... Et lorsque le fichier n'a pu être trouvé :
[code:1]
PS&gt; Get-FileTypeProperty c:\temp\toto.txt
PS&gt; Impossible de trouver le chemin d'accès « C:\temp\toto.txt », car il n'existe pas.[/code:1]

Et cette fois-ci, on ne se base pas sur l'extension du fichier.<br><br>Message édité par: Matthew BETTON, à: 8/03/11 22:17

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.079 secondes
Propulsé par Kunena