PDA

View Full Version : [BATCH]come eseguire istruzioni in ogni drive root ???


SoldatoBiancaneve
30-11-2008, 13:35
ciao a tutti ragazzi,:D

ho scritto qualche riga di codice per eseguire la creazione di una cartella e vorrei ora inserire le istruzioni per creare questa cartella sotto ogni drive root, quindi chiaramente su c: ma anche su tutti gli altri drive compresi i removibili...

senza fare una cosa iterativa per tutti le lettere dell'alfabeto come potrei fare ???

c è un controllo per trovare tutti i drive esistenti nel pc ???

qualche idea o anche un suggeriemento ??? :muro:
:help: :help: :help:

grazie a tutti ...

filippo.

john_revelator
30-11-2008, 23:05
Con la powershell te la cavi con una riga di codice.
Scaricala da qui
http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

La installi (è richiesto il framework .NET) e la richiami digitando da esegui powershell

A questo punto per creare la cartella alla radice di ogni unità scrivi questo codice:


foreach($disk in (Get-WMIObject Win32_LogicalDisk -filter "DriveType = 3" | select DeviceID)) {new-item -path ($disk.deviceid+"\") -name pippo -type directory -whatif}


Sostituisci pippo col nome che vuoi assegnare alla cartella e verifica i messaggi che ti vengono restituiti dalla shell.
Nel caso sia tutto a posto rimuovi lo switch -whatif e riesegui il comando. :)

edit.
In alternativa copia questo codice in un file di testo, rinominalo con estensione vbs e facci doppio click


Dim objWMIService, objItem, colItems, strComputer, strDirectory

On Error Resume Next
strComputer = "."

Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")

Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objItem in colItems
if objItem.DriveType = 3 then
strDirectory = objitem.Name & "\pippo"
'Wscript.Echo "Lettera unità: " & objItem.Name
objFSO.CreateFolder(strDirectory)
WScript.Echo "Creata cartella in " & strDirectory
end if
Next

WSCript.Quit