Newsgroup: it.comp.os.win.xp
Titolo: Estrarre propieta' custom dai file

Immaginiamo di avere una directory contentente n file (possono essere 
anche alcune centinaia), esiste un programma che estragga le propieta' 
custom di questi file (ovviamente non avendo a disposizione 
l'applicazione che ha creato questi file) e mi generi come output una 
tabella con i file come righe e le propieta' custom come colonne?


Copia e incolla in un file di testo e poi rinominalo in .vbs
Comila i parametri modificabili
'==================================================================
'Parametri Modificabili
'==================================================================
FoderPath = "Scrivi il percorso della cartella dove si trovano i file
Proprietà(0) = "Scrivi il nome della proprietà che vuoi estratte" '---
es: "DateModified" è la data di modifica
Proprietà(1) = "Scrivi il nome della proprietà che vuoi estratte"
Proprietà(2) = "Scrivi il nome della proprietà che vuoi estratte"
Proprietà(3) = "Scrivi il nome della proprietà che vuoi estratte"
Proprietà(4) = "Scrivi il nome della proprietà che vuoi estratte"
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Cartella = oFSO.GetFolder(FolderPath)
Set Collection = Cartella.Files
For Each File in Collection
    OutputFile.Write File.Name & ";"
    For I = 0 to 4
        OutputFile.Write File.Proprieta(I) & ";"
    Next
        OutputFile.Write VbCr
Next
OutputFile.Close
Dovrebbe funzionare fammi sapere

> Dovrebbe funzionare fammi sapere
L'ho adattato cosi':
'==================================================================
'Parametri Modificabili
'==================================================================
FolderPath = "D:\temp\prova"
Proprieta(0) = "Materiale"
Proprieta(1) = "Trattamentotermico"
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Cartella = oFSO.GetFolder(FolderPath)
Set Collection = Cartella.Files
For Each File in Collection
     OutputFile.Write File.Name & ";"
     For I = 0 to 1
         OutputFile.Write File.Proprieta(I) & ";"
     Next
         OutputFile.Write VbCr
Next
OutputFile.Close
ed ottengo questo errore:
Script: nome del file
Riga: 5
carattere: 1
Errore: Tipo non corrispondente: 'Propieta'
Codice: 800A000D
Origine: Erroroe di run-time di MS VBScript

> Dovrebbe funzionare fammi sapere
Ah ovviamente ti ringrazio per il tempo che hai impiegato!


Modifica così:
FolderPath = "D:\temp\prova"
Dim Proprietà(1)
Proprieta(0) = "Materiale"
Se aggiungi proprietà aumenta il numero :-)

 Errore: Tipo non corrispondente: 'Propieta'
Si vede che nel kentucky non distinguono accentate e lettere
normali.
Parti da questo: ( 
http://www.vbitalia.it/articoli/fso.asp?lez=fso
 )
-----------------------------------------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("J:\Temp")
Set Files = Folder.Files
For Each File In Files
With File
MsgBox "Nome: " & .Name & vbCrLf & _
"Nome breve: " & .ShortName & vbCrLf & _
"Dimensioni: " & .Size & vbCrLf & _
"Tipo: " & .Type & vbCrLf & _
"Propriet�: " & .Attributes & vbCrLf & _
"Drive: " & .Drive & vbCrLf & _
"Percorso: " & .Path & vbCrLf & _
"Percorso breve: " & .ShortPath & vbCrLf & _
"Cartella: " & .ParentFolder & vbCrLf & _
"Data creazione: " & .DateCreated & vbCrLf & _
"Ultima modifica: " & .DateLastModified & vbCrLf & _
"Ultimo accesso: " & .DateLastAccessed
End With
Next
-------------------------------------------------------
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 
Questo funziona ma non genera nessun file di ouput.

 Se aggiungi propriet� aumenta il numero :-)
Avendolo modificato cosi':
FolderPath = "d:\temp\prova"
Dim Propieta(1)
Proprieta(0) = "Materiale"
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Cartella = oFSO.GetFolder(FolderPath)
Set Collection = Cartella.Files
For Each File in Collection
     OutputFile.Write File.Name & ";"
     For I = 0 to 4
         OutputFile.Write File.Proprieta(I) & ";"
     Next
         OutputFile.Write VbCr
Next
OutputFile.Close
ottngo l'eeore:
riga: 3
carattere: 1
errore: Tipo non corrispondente: "propieta"

Questo funziona ma non genera nessun file di ouput.
Logico, quel file non contiene nessuna istruzione di scrittura � solo
per farti vedere le propriet� del file.
Prova vbsedit (e premi Evaluate)
http://www.vbsedit.com/
nella finestra Object browser sotto Scripting >> File trovi le propriet� dei
file che puoi usare da vbs.
Premi F1 per l'help
--
ciao
  Stefano

Ale ha scritto:

Infatti ti ho detto di partire da l�, non che risolveva il tuo
problema. ;-)
PS: sono girate parecchie versioni dello script, e in tutte, dico
tutte, c'erano i nomi buttati gi� alla carlona:
propieta, proprieta, propriet� sono tre cose ben diverse.


 propieta, proprieta, propriet� sono tre cose ben diverse.
:-) hai ragione, avendo scritto correttamente "proprieta" dappertutto 
adesso l'errore e':
riga: 9
carattere: 5
errore: Necessario oggetto: 'OutputFile'

 errore: Tipo non corrispondente: "propieta"
per forza manca la R correggi e metti proprieta

roberto ha scritto:

FolderPath = "d:\temp\prova"
OutputFile non � definito da nessuna parte
devi specificare prima OutputFile, il file dove devi andare a scrivere
es:
OutputFile  = "C:\prop.txt"
--
ciao
  Stefano

 errore: Necessario oggetto: 'OutputFile'
Per forza non l'ho creato...
Ecco:
'==================================================================
'Parametri Modificabili
'==================================================================
FolderPath = "D:\temp\prova"
DIm Proprieta(1)
Proprieta(0) = "Materiale"
Proprieta(1) = "Trattamentotermico"
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set Cartella = oFSO.GetFolder(FolderPath)
Set Collection = Cartella.Files
For Each File in Collection
     Set OutputFile = oFSO.CreateTextFile("Proprieta del file_" &
File.name & "_.csv")
     OutputFile.Write File.Name & ";"
     For I = 0 to 1
         OutputFile.Write File.Proprieta(I) & ";"
     Next
         OutputFile.Write VbCr
         OutputFile.Close
Next
MsgBox "Operazione Terminata"

 MsgBox "Operazione Terminata"
Scusa se non mi sono fatto piu' vivo ma sono stato un po' incasinato.
Facendo girare l'ultima versione dello script, l'errore adesso e':
Riga: 16
Carattere: 10
Errore: Propieta' o metodo non supportati dall'oggetto: 'File.Propieta'

kentucky ha scritto:

Forse perch� in italiano e "PropRieta"
Per� l'ultima versione era scritta bene, posta tutto il vbs che stai provando.
--
ciao
  Stefano

   Stefano
Eccolo:
'==================================================================
'Parametri Modificabili
'==================================================================
FolderPath = "G:\temp\prova"
