Newsgroup: it.comp.lang.visual-basic
Titolo: VBSCRIPT CREAZIONE CARTELLA

Domandone
ho un file lista.txt che devo dare in pasto a uno script vbs.
Il file è cosi composto
nome/cognome/sigla
nome1/cognome1/sigla
.........
la sigla è la cartella padre a cui fa riferimento.
direcotory che crea è
nome.cognome
lo script legge la lista e crea le direcotory, finche ne crea una va
tutto bene la secoda la crea cosi
nome.cognomenome1.cognome1
forse è errato questo comando?
pippo = Split(linea, "/", -1, 1)


Non mi pare.
Posta il codice completo, anche se ho già una mezza idea di cosa possa 
essere ;-)
Ciao
Raf 

 - Mostra testo tra virgolette -
cioè quale potrebbe essere il probelma?


Ad esempio che nel ciclo di parsing delle linee del file lista.txt 
dimentichi di sbiancare qualche variabile... e quindi ad ogni iterazione si 
concatena un nuovo pezzo.
Oh, ma è solo un'ipotesi, non vedendo il codice non posso essere più 
preciso.
Ciao

mary:
te l'ho gia postato di la , evita i cross/multi per favore
' creati un file C:\test.txt e mettici alcuni nomi
' come spiegato sotto e lancia lo script sotto
' vai a vedere il risultato in c:\test\
' per il resto
' questo (oShell.run) si comporta come da riga di comando dos
'test
set oShell = CreateObject("WScript.Shell")
oShell.run"calc"
strOFile ="C:\test.txt"
'one
'two
'3
'ecc
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists("C:\Test") then
  fso.CreateFolder("C:\Test")
 End If
Set objInputFile = fso.OpenTextFile(strOFile, 1)
inputData = Split(objInputFile.ReadAll, vbNewline)
For each strData In inputData
    WScript.Echo strData
  fso.CreateFolder("c:\test\"& strData)
Next
objInputFile.Close
-- 
Fosco


Altro quesito.
in pratica devo cancellare delle cartelle che hanno :
1)non protezioni di amministrator
2)file con nomi troppo lunghi.
Ovviamente io non so quali sono le cartelle che contengono le
protezioni e non so quali cartelle hanno i file con nomni troppo
lunghi visto che sono piu di 1000 come posso fare per velocizzare la
cancellazione.
Esiste n tool i microsoft ceh mi permetta di fare ciò oppure uno
script che mi permetta questo?
Grazie

 Grazie
Non conosco tool che facciano esattamente questo.
Provo comunque a darti qualche dritta per crearti lo script "by yourself".
Per iterare le cartelle usi l'oggetto Folder e la sua proprietà Subfolders
Qua trovi un esempio in cui si mostra l'ACL di una cartella e delle 
sottocartelle (usa sempre cacls però):
http://www.codeproject.com/vbscript/VBScript_ACL_Crawl.asp
Invece per leggere i permessi di una folder puoi usare gli oggetti della 
libreria WMI, anche se è un po' complesso.
Qui trovi un esempio:
http://tinyurl.com/3bha4k
Ciao
Raf 

lunghi
' esempio generico
'vedi  il risultato in Conta_Caratteri
'Al posto di DOC mettici la folder che vuoi
sStartPath = "c:\DOC"
Set oFSO = CreateObject("Scripting.FileSystemObject")
sReportName = "log.txt"
sReportName2 = "Empty.txt"
Set fReport = oFSo.CreateTextFile(sReportName, True)
Set fReport2 = oFSo.CreateTextFile(sReportName2, True)
fReport2.Writeline "Cartelle con ZERO files"& VBCrLf
ListFolders(sStartPath)
Sub ListFolders(sPath)
  Set oFolder = oFSO.GetFolder(sPath)
  liLength = len(oFolder.Path)
  fReport.Writeline oFolder
  fReport.Writeline "Base name: " & oFolder.Name
  fReport.Writeline "File count: " & oFolder.Files.Count
  fReport.WriteLine "Conta_Caratteri" &"  "& liLength
 t =oFolder.Size/1024000
     S = formatnumber(t,,,,0) & " MB "
 fReport.Writeline "Folder size: " & S
  fReport.Writeline
  If oFolder.Size = 0 Then
       '   FSO.DeleteFolder(Subfolder.Path)
'msgbox "Cartelle con ZERO files" & VBCrLf  &   oFolder
'fReport2.Writeline "Cartelle con ZERO files"& VBCrLf&oFolder
   fReport2.Writeline oFolder
    end if
  liMaxLength = 250
if liLength > liMaxLength then
 wscript.echo oFolder.Path &"  "& liLength
 end if
  For Each oFldr In oFolder.SubFolders
    ListFolders oFldr.Path
  Next
End Sub
set oShell = CreateObject("WScript.Shell")
while not oFSO.FileExists("log.txt")
WScript.Sleep 100
Wend
oShell.run"log.txt"
while not oFSO.FileExists("empty.txt")
WScript.Sleep 10000
Wend
oShell.run"empty.txt"
'set fso = CreateObject ("Scripting.FileSystemObject")
'set initialFolder = fso.GetFolder ("C:\windows\temp")
'for each subFldr in initialFolder.SubFolders
 'Wscript.Echo subFldr.Path
 'Wscript.Echo subFldr.DateCreated
 'Wscript.Echo subFldr.DateLastModified
 'Wscript.Echo subFldr.DateLastAccessed
 'Wscript.Echo subFldr.Size
'next
--
Fosco


Ho provato lipt ma mi da errore  "Autorizzazione Negata"
cosa devo fare?
L'ho provato sul mio pc ed è ok appena invece lo facci partire dal
server mi da errore.

mary:

azz non sono pratico di server , ti metto tutto il post  in cross e followup su
microsoft.public.it.scripting
vedi se li qualcuno ti risponde
-- 
Fosco