Question [Gros débutant] ouvrir et copier le contenu d'un fichier

Plus d'informations
il y a 2 mois 3 jours #32660 par Laurent
bonjour,
Je ne sais pas si ma pratique d'apprentissage est la bonne mais j'essaye d'éliminer la souris pour mes déplacements et mes ouvertures de fichiers au profit de Powershell.
Ainsi, je cherche à récupérer une série de caractères figurant dans un fichier que nous appellerons fichier.txt et qui figure sur une clé usb. 
J'ai donc commencé par rechercher une clé usb dont j'avais le nom.
#trouver la clé usb
Get-WmiObject -class win32_logicaldisk
j'ai tous mes disques usb qui sont apparus.
J'ai essayé de spécifier pour avoir juste celui que je souhaitais
Get-WmiObject -class win32_logicaldisk | Where-Object {($_.volumename -eq 'SAVE-DATA')}
mais le résultat est un échec...

J'ai ensuite fait :
cd G:\fichier.txt
#afficher le contenu du fichier
$contenu = Get-Content G:\fichier.txt
en revanche, je ne sais pas quoi faire de la variable contenu si je l'ai bien écrite...
bref voilà, je pars de loin mais j'ai envi d'apprendre...et de comprendre.

merci par avance et désolé du niveau.

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

Plus d'informations
il y a 2 mois 2 jours #32661 par ericlm128
Ta syntaxe est incorrecte, lorsque l'on débute dans un langage on doit se référer à la documentation.
On ne peux pas deviner comment fonctionne un langage sans l'apprendre.

Voici pour commencer
$LogicalUsb = Get-WmiObject -Class "Win32_LogicalDisk" | Where-Object {$_.VolumeName -eq 'SAVE-DATA'}
$LogicalUsb # Affiche le contenu de la variable

$Letter = $LogicalUsb.Name
$Letter # Affiche le contenu de la variable

$contenu = Get-Content "${DriveUsb}\fichier.txt"
$contenu # Affiche le contenu de la variable

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

Plus d'informations
il y a 2 mois 2 jours #32662 par Laurent
bonjour Eric,

En premier lieu, merci pour la franchise ! J'ai conscience d'être à la ramasse et je crains avoir besoin de conseils en matière de documentation...
Pour être totalement honnête mon cours sur powershell tient sur "du néant".
En gros, j'y ai appris à ouvrir powershell ise et à remplir quelques lignes de base dedans qu'on exécute et par magie, les processus en cours apparaissent. Globalement, c'est quasiment tout ce que j'ai et ça me parait peu au regard du sujet.

Si vous avez des conseils de documentation, de préférence en français, je suis extrêmement preneur !

mille merci pour votre aide.
 

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

Plus d'informations
il y a 2 mois 2 jours - il y a 2 mois 2 jours #32663 par ericlm128
La documentation officiel c'est par la : learn.microsoft.com/en-us/powershell/scr...?view=powershell-5.1

Sinon sur internet tu trouve facilement ce que tu trouves.
Exemple sur Google :
powershell trouver texte dans fichier

Pas évident de partir de zéro, c'est plus simple si tu as déjà les bases de la programmation dans un autre langage ou si tu connais quelqu'un qui peux t'aider a démarrer.

L'anglais est recommandé pour trouvé plus facilement
Dernière édition: il y a 2 mois 2 jours par ericlm128.

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

Plus d'informations
il y a 2 mois 2 jours #32664 par Laurent
Bonjour Eric,

Malheureusement, je n'ai pas beaucoup de base.
Les basiques en HTML5 et CSS3, un peu de python histoire de comprendre mais pas plus car je n'ai pas eu ce temps libre là...et ça me manque donc je rattrape mon temps "libre perdu" ^^'
C'est aussi pour ça que je m'efforce d'essayer de faire des choses simples et de les faire avec la bonne méthode...étape par étape pour les comprendre.

De ce que je comprends de la façon dont vous avez écrit :
$nom_de_la_variable = commande_effectuée_par_powershell
$print_variable

on a donc décomposé l'action en 3. La première d'identification du support usb avec la variable logicalusb
La seconde permet d'extraire la lettre mais pourquoi Name et non DeviceID ? J'ai essayé avec DeviceID et le résultat semble le même. Le point permet de donner un attribut particulier ?

La 3ème affiche le contenu du fichier.

Si je voulais lister les fichiers présents et obtenir le détails de chacun d'eux, je devrais donc créer une quatrième variable
$list = get-childitem $driveusb
$list # affiche le contenu de la variable

Le même principe pourrait être utilisé pour obtenir les détails du fichier.txt
$file = get-childitem "${driveusb}\fichier.txt"
$file # affiche le contenu de la variable

En revanche pour obtenir le détail des fichiers présents sur la clé usb, il faudrait la même expression à une différence prête, le string n'est plus nécessaire...
listG = get-childitem $driveusb
listG # affiche le contenu de la variable

Pour ce qui est de microsoft learn, je ne sais pas ce que ça vaut mais les pages us-us figure en fr-fr pour powershell. je vais me risquer en ce sens. Je n'ai pas la prétention de vouloir faire des choses géniales comme j'ai pu en voir en parcourant le forum. Pour ma part, je vais déjà me risquer à faire des choses simples mais avec la bonne méthode et de les comprendre.

Merci à vous

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

Plus d'informations
il y a 2 mois 2 jours - il y a 2 mois 2 jours #32665 par ericlm128

La seconde permet d'extraire la lettre mais pourquoi Name et non DeviceID ?J'ai essayé avec DeviceID et le résultat semble le même.

Voir : learn.microsoft.com/fr-fr/windows/win32/...ov/win32-logicaldisk
Tu as raison nous aurions pu (du ?) utiliser DeviceID.
Comme tu me le fait remarquer le résultat est le même, et mon choix semble arbitraire.
Je l'ai choisi car c'est une propriété masqué par défaut dans la console, donc c'est juste pour t'embêter (ou te faire réfléchir )

Le point permet de donner un attribut particulier ?

Oui comme dans tout les langages object (POO)
Voir : learn.microsoft.com/fr-fr/powershell/scr...ing-a-pscustomobject

Si je voulais lister les fichiers présents et obtenir le détails de chacun d'eux, je devrais donc créer une quatrième variable

Tu peux passer par une variable si tu envisage d'utiliser son contenu, sinon tu peux ne pas stocker le résultat et le laisser s'afficher directement
get-childitem $driveusb
Il faut comprendre que l'affichage des variables n'ont aucun intérêt fonctionnel, c'est juste pour mieux comprendre ce qui se passe.

Pour ce qui est de microsoft learn, je ne sais pas ce que ça vaut mais les pages us-us figure en fr-fr pour powershell. je vais me risquer en ce sens. Je n'ai pas la prétention de vouloir faire des choses géniales comme j'ai pu en voir en parcourant le forum. Pour ma part, je vais déjà me risquer à faire des choses simples mais avec la bonne méthode et de les comprendre.

Bonne approche je pense.
Pour chaque commande native tu as une aide assez bien documentée, détaillée avec des exemples, il suffit de taper son nom sur Google:
Exemple : Get-ChildItem -> learn.microsoft.com/en-us/powershell/mod...?view=powershell-7.2

Attention, c'est la documentation de la dernière version de PowerShell, je suppose que tu dois être en 5.1. Les différences sont mineurs mais il faut le savoir.
Tu peux demander la doc pour PS 5.1 en haut a gauche dans "Version"

Tu peux vérifier ta version avec ceci
$PSVersionTable.PSVersion
Dernière édition: il y a 2 mois 2 jours par ericlm128.

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

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