77 votes

Équivalent de Windows de 'nice'

Y a-t-il un équivalent Windows de la commande Unix, nice ?

Je cherche spécifiquement quelque chose que je peux utiliser en ligne de commande, et pas le menu "Définir la priorité" du gestionnaire des tâches.

Mes tentatives de trouver cela sur Google ont été contrecarrées par ceux qui ne peuvent pas trouver de meilleurs adjectifs.

67voto

Stephen Pellicer Points 828

Si vous souhaitez définir la priorité lors du lancement d'un processus, vous pouvez utiliser la commande intégrée START:

START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [command/program] [parameters]

Utilisez les options de faible priorité à belownormal pour définir la priorité de la commande/programme lancé. Semble être la solution la plus simple. Pas de téléchargements ou d'écriture de script. Les autres solutions fonctionnent probablement sur des processus déjà en cours d'exécution.

6 votes

Pour que start se comporte encore plus comme nice, utilisez les options /WAIT et /B pour que la sortie du terminal soit dirigée vers la même fenêtre.

0 votes

Cependant, cela semble supprimer complètement votre historique de commandes (à la fois des touches fléchées et en appuyant sur F7).

3 votes

Cela ne répond toujours pas à la question de savoir comment changer la priorité des processus en cours d'exécution - la réponse de duane (via VBScript) est actuellement la meilleure réponse à cela.

9voto

Chris Miller Points 2552

Si vous utilisez PowerShell, vous pourriez écrire un script qui vous permet de changer la priorité d'un processus. J'ai trouvé la fonction PowerShell suivante sur le blog Monad:

function set-ProcessPriority { 
    param($processName = $(throw "Entrez le nom du processus"), $priority = "Normal")

    get-process -processname $processname | foreach { $_.PriorityClass = $priority }
    write-host "`"$($processName)`"'s priority is set to `"$($priority)`""
}

Depuis l'invite de commandes PowerShell, vous feriez quelque chose comme ceci:

set-ProcessPriority NomDuProcessus "Élevé"

6voto

ggasp Points 608

Peut-être que vous voulez envisager d'utiliser ProcessTamer qui "automatise" le processus de diminution ou d'augmentation de la priorité du processus en fonction de vos paramètres.

Je l'utilise depuis deux ans. C'est très simple mais vraiment efficace!

5voto

De http://techtasks.com/code/viewbookcode/567

# Ce code définit la priorité d'un processus

# ---------------------------------------------------------------
# Adapté du code VBScript contenu dans le livre :
#      "Windows Server Cookbook" de Robbie Allen
# ISBN : 0-596-00633-0
# ---------------------------------------------------------------

use Win32::OLE;
$Win32::OLE::Warn = 3;

use constant NORMAL => 32;
use constant IDLE => 64;
use constant HIGH_PRIORITY => 128;
use constant REALTIME => 256;
use constant BELOW_NORMAL => 16384;
use constant ABOVE_NORMAL => 32768;

# ------ CONFIGURATION DU SCRIPT ------
$strComputer = '.';
$intPID = 2880; # définir ceci sur le PID du processus cible
$intPriority = ABOVE_NORMAL; # Définir ceci sur l'une des constantes ci-dessus
# ------ FIN DE LA CONFIGURATION ------

print "Processus PID : $intPID\n";

$objWMIProcess = Win32::OLE->GetObject('winmgmts:\\\\' . $strComputer . '\\root\\cimv2:Win32_Process.Handle=\'' . $intPID . '\'');

print 'Nom du processus : ' . $objWMIProcess->Name, "\n";

$intRC = $objWMIProcess->SetPriority($intPriority);

if ($intRC == 0) {
    print "Priorité définie avec succès.\n";
}
else {
    print 'Impossible de définir la priorité. Code d'erreur : ' . $intRC, "\n";
}

1voto

Michael Stum Points 72046

PrcView semble fonctionner également en ligne de commande :

http://www.teamcti.com/pview/prcview.htm

(Vérifiez le paramètre -ph)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X