2013-10-15 5 views
0

J'ai un script bash qui est utilisé pour obtenir le nombre de disques présents sur une machine.Script batch équivalent pour le script bash

echo "rescan" > $script 
echo "list disk" >> $script 
disks=$($diskpart /s $script | tee ${logfile} | awk '$1 == "Disk" && ($3 == "Online" || $3 == "Offline") {print $2}') 

J'essaie de faire la même chose pour une machine Windows. Je le script suivant pour le même:

echo > script.txt rescan 
echo >> script.txt list disk 

Mais je ne suis pas sûr Sot sur la façon de procéder à l'étape suivante de l'utilisation awk dans un script batch. Pouvez-vous suggérer comment obtenir la valeur des disques dans un script batch? Im très nouveau pour sciper par lots.

J'ai cherché pendant un certain temps et a constaté que l'équivalent pour awk est « FOR/F », mais je ne suis pas sûr de savoir comment utiliser la même chose dans ma situation actuelle

+0

Quelle saveur de fenêtres que vous êtes ru nning? – Cyclonecode

+0

Il est Windows 2008 R2 – Pradeep

+0

doit-il être lot ou peut-être PowerShell est correct pour cela aussi? Je suppose que la tuyauterie et les trucs devraient être plus faciles à traduire en ps au lieu de batch ... – DrCopyPaste

Répondre

0

Sous Windows Vista, Windows 7 et Windows XP Pro vous devriez être capable d'utiliser le Windows Management Instrumentation command (IMW) à faire:

WMIC LOGICALDISK GET DEVICEID, VOLUMENAME 

Voici un lien expliquant comment lister différents types d'informations à l'aide wmic

+0

Le problème étant ... Je ne peux pas utiliser les commandes WMI dans mon code – Pradeep

+0

@Pradeep - Avez-vous accès à la commande 'diskpart'? – Cyclonecode

+0

Pourquoi ne peux-tu pas utiliser wmi dans ton code? – DrCopyPaste