Discussione:
VBSCRIPT e comandi DOS
(troppo vecchio per rispondere)
mary
2007-09-26 10:50:35 UTC
Permalink
Buongiorno,
Premetto di essere poco pratica con vbscript, e quindi avrei bisogno
di un vostro aiuto.
In pratica devo creare un vbs che mi crei le cartelle all'interno di
un path a seconda di una lista di nomi... da dove prende il nome
della
cartella.
Dovrei poi dare le protezioni a queste cartelle tramite il comando
cacls o subinacl.(i comandi dos li conosco bene)
Come posso fare con vbscript per automatizzare il tutto
Grazie
Rafunk
2007-09-26 12:05:48 UTC
Permalink
Post by mary
Buongiorno,
Premetto di essere poco pratica con vbscript, e quindi avrei bisogno
di un vostro aiuto.
In pratica devo creare un vbs che mi crei le cartelle all'interno di
un path a seconda di una lista di nomi... da dove prende il nome
della
cartella.
Dovrei poi dare le protezioni a queste cartelle tramite il comando
cacls o subinacl.(i comandi dos li conosco bene)
Come posso fare con vbscript per automatizzare il tutto
Grazie
Supponiamo che la lista di nomi sia in un file di testo.
Per leggerlo puoi usare l'oggetto TextStream.
Per creare una cartella usi il metodo CreateFolder dell'oggetto
FileSystemObject.
Per invocare un comando "DOS" da VBScript invece puoi usare il metodo Run
dell'oggetto WScript.Shell.

Questo è un veloce esempio di come può risultare lo script (BasePath deve
contenere il percorso reale della cartella entro cui devi creare le
sottocartelle):

Dim fso, ts

BasePath = "c:\........"

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("listanomi.txt", 1)
Do While Not ts.AtEndOfStream
SubFolder = ts.ReadLine
FolderPath = BasePath & "\" & SubFolder
If Not fso.FolderExists(FolderPath) Then
fso.CreateFolder(FolderPath)
End If
Call SetPermissions(FolderPath)
Loop

Sub SetPermissions(FolderPath)
Dim sh
Set sh = CreateObject("WScript.Shell")
cmd = "cacls " & FolderPath & " /T /C /G Guest:F" ' <- i parametri
sono solo un esempio
sh.Run cmd,1,True
End Sub

Bye

Raf
mary
2007-09-26 14:05:28 UTC
Permalink
Post by Rafunk
Post by mary
Buongiorno,
Premetto di essere poco pratica con vbscript, e quindi avrei bisogno
di un vostro aiuto.
In pratica devo creare un vbs che mi crei le cartelle all'interno di
un path a seconda di una lista di nomi... da dove prende il nome
della
cartella.
Dovrei poi dare le protezioni a queste cartelle tramite il comando
cacls o subinacl.(i comandi dos li conosco bene)
Come posso fare con vbscript per automatizzare il tutto
Grazie
Supponiamo che la lista di nomi sia in un file di testo.
Per leggerlo puoi usare l'oggetto TextStream.
Per creare una cartella usi il metodo CreateFolder dell'oggetto
FileSystemObject.
Per invocare un comando "DOS" da VBScript invece puoi usare il metodo Run
dell'oggetto WScript.Shell.
Questo � un veloce esempio di come pu� risultare lo script (BasePath deve
contenere il percorso reale della cartella entro cui devi creare le
Dim fso, ts
BasePath = "c:\........"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("listanomi.txt", 1)
Do While Not ts.AtEndOfStream
SubFolder = ts.ReadLine
FolderPath = BasePath & "\" & SubFolder
If Not fso.FolderExists(FolderPath) Then
fso.CreateFolder(FolderPath)
End If
Call SetPermissions(FolderPath)
Loop
Sub SetPermissions(FolderPath)
Dim sh
Set sh = CreateObject("WScript.Shell")
cmd = "cacls " & FolderPath & " /T /C /G Guest:F" ' <- i parametri
sono solo un esempio
sh.Run cmd,1,True
End Sub
Bye
Raf
Grazie mille per l'esempio.
unica cosa ... provo ad aggiungere al tuo script una cosa ma mi da
errore.
ecco lo script



Dim fso, ts


BasePath = "c:\marisa\"


Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("listanomi.txt", 1)
Do While Not ts.AtEndOfStream
SubFolder = ts.ReadLine
FolderPath = BasePath & "\" & SubFolder
If Not fso.FolderExists(FolderPath) Then
fso.CreateFolder(FolderPath)
End If
Call SetPermissions(FolderPath)
Loop


Sub SetPermissions(FolderPath)
Dim sh
Set sh = CreateObject("WScript.Shell")
cmd = "cacls " & FolderPath & " /E /G m.lattuca:F"
cmd = "cacls " & FolderPath & " /E /G administrator:F"
'parte nuova cmd = "subinacl /file " & FolderPath &" /
setowner=unicampus\"& FolderPath &""
sh.Run cmd,1,True
End Sub

mi dice che � impossibile trovare il percorso perch�?
Rafunk
2007-09-26 14:42:57 UTC
Permalink
Post by mary
Grazie mille per l'esempio.
unica cosa ... provo ad aggiungere al tuo script una cosa ma mi da
errore.
ecco lo script
Dim fso, ts
BasePath = "c:\marisa\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("listanomi.txt", 1)
Do While Not ts.AtEndOfStream
SubFolder = ts.ReadLine
FolderPath = BasePath & "\" & SubFolder
If Not fso.FolderExists(FolderPath) Then
fso.CreateFolder(FolderPath)
End If
Call SetPermissions(FolderPath)
Loop
Sub SetPermissions(FolderPath)
Dim sh
Set sh = CreateObject("WScript.Shell")
cmd = "cacls " & FolderPath & " /E /G m.lattuca:F"
cmd = "cacls " & FolderPath & " /E /G administrator:F"
'parte nuova cmd = "subinacl /file " & FolderPath &" /
setowner=unicampus\"& FolderPath &""
sh.Run cmd,1,True
End Sub
mi dice che è impossibile trovare il percorso perchè?
Prima osservazione: BasePath ha un \ di troppo alla fine.
Seconda: vedo che per settare le permissions vorresti lanciare 3 comandi in
sequenza, ma Run viene invocato una volta sola, sull'ultimo...

cmd = "cacls " & FolderPath & " /E /G m.lattuca:F"
sh.Run cmd,1,True
cmd = "cacls " & FolderPath & " /E /G administrator:F"
sh.Run cmd,1,True
'parte nuova
cmd = "subinacl /file " & FolderPath &" /setowner=unicampus\"&
FolderPath &""
sh.Run cmd,1,True

Così dovrebbe andare meglio, se non fosse per quell' "unicampus\" anteposto
a FolderPath, che lo trasforma in una stringa tipo
"unicampus\c:\marisa\nomefolder" che non penso che sia esattamente quello
che volevi...
Probabilmente allora occorre passare un altro parametro alla sub
SetPermissions (sarebbe l'Username letto nella lista, giusto?) e usarlo in
quel punto al posto di FolderPath
cmd = "subinacl /file " & FolderPath &" /setowner=unicampus\" & Username
sh.Run cmd,1,True


Bye

Raf
mary
2007-09-26 16:06:03 UTC
Permalink
Post by Rafunk
Post by mary
Grazie mille per l'esempio.
unica cosa ... provo ad aggiungere al tuo script una cosa ma mi da
errore.
ecco lo script
Dim fso, ts
BasePath = "c:\marisa\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("listanomi.txt", 1)
Do While Not ts.AtEndOfStream
SubFolder = ts.ReadLine
FolderPath = BasePath & "\" & SubFolder
If Not fso.FolderExists(FolderPath) Then
fso.CreateFolder(FolderPath)
End If
Call SetPermissions(FolderPath)
Loop
Sub SetPermissions(FolderPath)
Dim sh
Set sh = CreateObject("WScript.Shell")
cmd = "cacls " & FolderPath & " /E /G m.lattuca:F"
cmd = "cacls " & FolderPath & " /E /G administrator:F"
'parte nuova cmd = "subinacl /file " & FolderPath &" /
setowner=unicampus\"& FolderPath &""
sh.Run cmd,1,True
End Sub
mi dice che è impossibile trovare il percorso perchè?
Prima osservazione: BasePath ha un \ di troppo alla fine.
Seconda: vedo che per settare le permissions vorresti lanciare 3 comandi in
sequenza, ma Run viene invocato una volta sola, sull'ultimo...
cmd = "cacls " & FolderPath & " /E /G m.lattuca:F"
sh.Run cmd,1,True
cmd = "cacls " & FolderPath & " /E /G administrator:F"
sh.Run cmd,1,True
'parte nuova
cmd = "subinacl /file " & FolderPath &" /setowner=unicampus\"&
FolderPath &""
sh.Run cmd,1,True
Così dovrebbe andare meglio, se non fosse per quell' "unicampus\" anteposto
a FolderPath, che lo trasforma in una stringa tipo
"unicampus\c:\marisa\nomefolder" che non penso che sia esattamente quello
che volevi...
Probabilmente allora occorre passare un altro parametro alla sub
SetPermissions (sarebbe l'Username letto nella lista, giusto?) e usarlo in
quel punto al posto di FolderPath
cmd = "subinacl /file " & FolderPath &" /setowner=unicampus\" & Username
sh.Run cmd,1,True
Bye
Raf- Nascondi testo tra virgolette -
- Mostra testo tra virgolette -
scusami se ti rompo ancora potresti cancellare questo messaggio grazie
mille per tutto
Rafunk
2007-09-26 16:10:53 UTC
Permalink
Post by mary
scusami se ti rompo ancora potresti cancellare questo messaggio grazie
mille per tutto
Se fosse possibile, volentieri, ma ahimé non sono in grado...
Forse qualcuno più esperto di me in materia di NG sa come fare.
Sorry!

Raf
mary
2007-09-26 16:15:47 UTC
Permalink
Post by Rafunk
Post by mary
scusami se ti rompo ancora potresti cancellare questo messaggio grazie
mille per tutto
Se fosse possibile, volentieri, ma ahimé non sono in grado...
Forse qualcuno più esperto di me in materia di NG sa come fare.
Sorry!
Raf
te lo dico io
in pratica quando apri il messaggio c'è scritto in alto altre opzioni
se lo ampli c'è scritto elimina
Rafunk
2007-09-26 16:21:15 UTC
Permalink
Post by mary
Post by Rafunk
Post by mary
scusami se ti rompo ancora potresti cancellare questo messaggio
grazie mille per tutto
Se fosse possibile, volentieri, ma ahimé non sono in grado...
Forse qualcuno più esperto di me in materia di NG sa come fare.
Sorry!
Raf
te lo dico io
in pratica quando apri il messaggio c'è scritto in alto altre opzioni
se lo ampli c'è scritto elimina
Ehm... come newsreader uso Outlook Express e non mi pare di vedere nulla del
genere. :-/
mary
2007-09-26 16:40:17 UTC
Permalink
Fosco
2007-09-27 13:26:04 UTC
Permalink
"mary"
Post by mary
scusami se ti rompo ancora potresti cancellare questo messaggio grazie
mille per tutto
Da google e difficile , se mi dai il tuo permesso ESPLICITO
te lo cancello io , ma oramai servirebbe a poco visto che
si e' abbondantemente propagato

--
Fosco
mary
2007-09-28 16:08:08 UTC
Permalink
Post by Fosco
"mary"
Post by mary
scusami se ti rompo ancora potresti cancellare questo messaggio grazie
mille per tutto
Da google e difficile , se mi dai il tuo permesso ESPLICITO
te lo cancello io , ma oramai servirebbe a poco visto che
si e' abbondantemente propagato
--
Fosco
si ti do il pemesso.. grazie
Fosco
2007-09-28 19:01:37 UTC
Permalink
"mary"
Post by mary
Post by Fosco
Da google e difficile , se mi dai il tuo permesso ESPLICITO
te lo cancello io , ma oramai servirebbe a poco visto che
si e' abbondantemente propagato
--
Fosco
si ti do il pemesso.. grazie
Ok z fatto

--
Fosco

Continua a leggere su narkive:
Loading...