Question
Questions: cacher script et retour en arrière
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 3 ans 1 mois #33007
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Questions cahcer script et retour en arrière
>> les caractères au bout de la ligne qui forment le menu se décalent car ce que contient la variable s'affiche
Il faut calculer la longueur des lignes de ton menu et adapter ton écran, voir
>>Dans l'exemple, si on le lit sur le site, les caractères sont des "a"
Peut être un problème d'encodage de ton fichier d'origine.
Un exemple pour le retour arrièreOn peut surement faire mieux mais je n'ai pas plus de temps pour cela.
Ta gestion des id de process est à revoir car ton script est lié à un contexte précis.
Si par exemple je lance VS Code ta manière de procéder détruit son process PS associé.
>>Et également, il y aurai t-il un script pour télécharger sur le web un fichier zip ou bien un dossier, sur GitHub ?
Quel est ton besoin exactement ?
>>J'ai également une autre question. Il y aurait un moyen de récupérer l'affichage
Cela dépend par ce que tu entends par 'affichage', ce qui est affiché à l'écran (device graphique) ou ce que l'exécutable renvoie comme résultat.
On peut rediriger la sortie STDOUT d'un process si celui-ci l'utilise en interne :
Il faut calculer la longueur des lignes de ton menu et adapter ton écran, voir
'-' * 3>>Dans l'exemple, si on le lit sur le site, les caractères sont des "a"
Peut être un problème d'encodage de ton fichier d'origine.
Un exemple pour le retour arrière
$isExit=$false
Do {
Cls
write-host " –ˆ–ˆ CHOISSISEZ UNE OPTION –ˆ–ˆ" -ForegroundColor Cyan
write-host " –ˆ–ˆ M Couper la musique –ˆ–ˆ" -ForegroundColor Cyan
write-host " –ˆ–ˆ –ˆ–ˆ" -ForegroundColor DarkBlue
write-host " –ˆ–ˆ X Quitter –ˆ–ˆ" -ForegroundColor Cyan
$choix = read-host 'Votre Choix'
switch ($choix){
"x" { #quitter
#Supprime tous les process Powershell sauf celui exécutant ce script
Get-Process -Name powershell | Where-Object {$_.Id -ne $pid}|Stop-Process
#FAUX !! on ne connait pas l'ID du process à supprimer
#Get-Process -Name wscript | Where-Object {$_.Id -ne $pid}|Stop-Process
#todo décommenter
#Get-Process -Name wscript |Stop-Process
Start-Process -FilePath 'E:\'
$isExit=$true
}
"m" { #Couper la musique
Do{
$isEnd=$false
#todo décommenter
#$WscriptProcess=Get-Process -Name wscript |Stop-Process -PassThru
##todo remove
$WscriptProcess=Get-Process -Name powershell | Where-Object {$_.Id -ne $pid}|Stop-Process -PassThru
if ($null -ne $WscriptProcess)
{
Write-warning "HasExited '$($WscriptProcess.HasExited)'" #todo remove
$isEnd=$WscriptProcess.HasExited
}
else
{
Write-warning "pas de process."
$isEnd=$true
}
}
While ($isEnd -eq $false)
}
default {
Write-Host "ERREUR D'ENTREE" -ForegroundColor Cyan
pause
}
}
} While ($isExit -eq $false)Ta gestion des id de process est à revoir car ton script est lié à un contexte précis.
Si par exemple je lance VS Code ta manière de procéder détruit son process PS associé.
>>Et également, il y aurai t-il un script pour télécharger sur le web un fichier zip ou bien un dossier, sur GitHub ?
Quel est ton besoin exactement ?
>>J'ai également une autre question. Il y aurait un moyen de récupérer l'affichage
Cela dépend par ce que tu entends par 'affichage', ce qui est affiché à l'écran (device graphique) ou ce que l'exécutable renvoie comme résultat.
On peut rediriger la sortie STDOUT d'un process si celui-ci l'utilise en interne :
#OK
ipconfig > c:\temp\test.txt
type c:\temp\test.txt
#Not OK
Notepad >c:\temp\test2.txt
type c:\temp\test2.txtTutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- KD
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 3 ans 1 mois #33009
par KD
Réponse de KD sur le sujet Questions cahcer script et retour en arrière
>>>Cela dépend par ce que tu entends par 'affichage', ce qui est affiché à l'écran (device graphique) ou ce que l'exécutable renvoie comme résultat.
J'aimerai récupérer ce que l'exécutable revoie comme résultat. Dans ce cas, l'exécutable effectue un speed test. Quand le speed test est terminé et que les valeurs (upload, download, latence) sont affichées dans l'exécutable, j'aimerai les stocker dans une variable pour les afficher par la suite. Si cela est trop compliqué, juste récupérer ce que l'exécutable renvoie suffirai.
>>>Il faut calculer la longueur des lignes de ton menu et adapter ton écran, voir
Désolé mais je n'ai pas compris ce que je dois faire.
J'aimerai récupérer ce que l'exécutable revoie comme résultat. Dans ce cas, l'exécutable effectue un speed test. Quand le speed test est terminé et que les valeurs (upload, download, latence) sont affichées dans l'exécutable, j'aimerai les stocker dans une variable pour les afficher par la suite. Si cela est trop compliqué, juste récupérer ce que l'exécutable renvoie suffirai.
>>>Il faut calculer la longueur des lignes de ton menu et adapter ton écran, voir
Désolé mais je n'ai pas compris ce que je dois faire.
Connexion ou Créer un compte pour participer à la conversation.
- KD
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 3 ans 1 mois #33010
par KD
Réponse de KD sur le sujet Questions cahcer script et retour en arrière
Egalement, il y aurait un moyen de stocker un script dans une variable ?
Exemple de script :
Write-host "bonjour"
Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $pid}|Stop-Process -PassThru 1>$null
Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $pid}|Stop-Process
$choix = read-host " "
switch ($choix){
"m" {
Stop-process
}
}
Exemple de script :
Write-host "bonjour"
Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $pid}|Stop-Process -PassThru 1>$null
Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $pid}|Stop-Process
$choix = read-host " "
switch ($choix){
"m" {
Stop-process
}
}
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 3 ans 1 mois #33011
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Questions cahcer script et retour en arrière
Pour l'affichage il faut calculer chaque ligne selon la longueur de ton message.
'-' * 3 renvoie trois tirets '---'. On multiplie la chaine à gauche par le nombre précisé à droite. Sinon il faut modifier ta manière de générer ton menu.
>>Si cela est trop compliqué,
Je ne sais pas je n'ai pas testé ton exécutable et par précaution je ne le ferais pas.
>>juste récupérer ce que l'exécutable renvoie suffirai.
Je t'ai indiqué la syntaxe de redirection.
>>il y aurait un moyen de stocker un script dans une variable ?
Oui un scriptblock:Autre usage :
'-' * 3 renvoie trois tirets '---'. On multiplie la chaine à gauche par le nombre précisé à droite. Sinon il faut modifier ta manière de générer ton menu.
>>Si cela est trop compliqué,
Je ne sais pas je n'ai pas testé ton exécutable et par précaution je ne le ferais pas.
>>juste récupérer ce que l'exécutable renvoie suffirai.
Je t'ai indiqué la syntaxe de redirection.
>>il y aurait un moyen de stocker un script dans une variable ?
Oui un scriptblock:
#déclaration
$Code={ Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $pid}|Stop-Process -PassThru }
#exécution
&$Code$filtre={$_.Id -ne $pid}
Get-Process -Name powershell | Where-Object -FilterScript $Filtre Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- KD
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 25
- Remerciements reçus 0
il y a 3 ans 1 mois #33032
par KD
Réponse de KD sur le sujet Questions cahcer script et retour en arrière
Merci beaucoup pour votre aide ! Tout ceci fonctionne. J'ai de nouvelles questions. Si vous n'avez pas le temps de toutes les traiter maintenant ce n'est pas grave
.
PowerShell.exe -WindowStyle Hidden
Start-sleep -seconds 3
PowerShell.exe -WindowStyle ??
Que dois-je mettre pour que la fenètre s'affiche de nouveau ?
$LogicalDiskVolumeName = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property Name
$LogicalDiskDeviceId = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property DeviceID
$LogicalDiskProviderName = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property ProviderName
$LogicalDiskDriveType = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property DriveType
$LogicalDiskSize = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property Size
$LogicalDiskFreeSpace = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property FreeSpace
Ici, je veux récupérer les inforamtions des disques durs et j'apelle les variables (je ne les ai pas mises) pour les afficher. Mais cela ne marche pas. Auriez vous une solution ?
Merci de votre aide et bonne soirée
PowerShell.exe -WindowStyle Hidden
Start-sleep -seconds 3
PowerShell.exe -WindowStyle ??
Que dois-je mettre pour que la fenètre s'affiche de nouveau ?
$LogicalDiskVolumeName = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property Name
$LogicalDiskDeviceId = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property DeviceID
$LogicalDiskProviderName = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property ProviderName
$LogicalDiskDriveType = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property DriveType
$LogicalDiskSize = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property Size
$LogicalDiskFreeSpace = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Select-Object -Property FreeSpace
Ici, je veux récupérer les inforamtions des disques durs et j'apelle les variables (je ne les ai pas mises) pour les afficher. Mais cela ne marche pas. Auriez vous une solution ?
Merci de votre aide et bonne soirée
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 3 ans 1 mois #33034
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Questions cahcer script et retour en arrière
>>Que dois-je mettre pour que la fenêtre s'affiche de nouveau
Je ne sais pas, je ne connais pas ton intention/objectif.
S'il s'agit de manipuler un même process, cela va nécessiter du code avancée...
>>Mais cela ne marche pas.
Select-object -Property FreeSpace crée un nouvel objet ayant UNE propriété qui a un contenu, pour récupérer uniquement le contenu il faut utiliser Select-Object -ExpandProperty FreeSpace.
Je ne sais pas, je ne connais pas ton intention/objectif.
S'il s'agit de manipuler un même process, cela va nécessiter du code avancée...
>>Mais cela ne marche pas.
Select-object -Property FreeSpace crée un nouvel objet ayant UNE propriété qui a un contenu, pour récupérer uniquement le contenu il faut utiliser Select-Object -ExpandProperty FreeSpace.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.054 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Questions: cacher script et retour en arrière