sven1986
Goto Top

VB-Script zur Wiedergabe von Dateiinformationen

Hallo,

ich habe ein kleines Problemchen face-smile

Erstmal zur Ausgangssituation:

Ich habe eine Textdatei wo einfach nur T001 bis T0050 drinsteht.
Mit Hilfe diese Informationen soll er jeweils auf einem Server nach einer bestimmten Datei suchen:

z. B. dir \\T001\Programme\Beispiel.exe --> es ändert sich nur die Serverbezeichnung. Der Rest bleibt gleich.

Jetzt soll jeweils geschaut werden ob die Beispiel.exe vorhanden ist, wenn ja soll nur ausgegeben werden, wir groß diese ist und wann sie erstellt wurde. Ist diese nicht vorhanden ein kurzes Kommentar.
Dieses Ergebniss soll dann in eine seperate Textdatei geschrieben werden.

Ungefähre Form:

T001 - Datei vorhanden - 500kb groß - Am ..... erstellt
T002 - Datei nicht vorhanden -
T003 - Datei vorhanden - 488 kb groß - Am ..... erstellt
.
.
.

Diese soll in VBscript umgesetzt werden da ich da jedoch keinerlei Erfahrung mit habe würde ich gerne wissen ob mir jemand dabei Helfen kann face-smile
Über Hilfe wäre ich sehr dankbar

Mit freundlichen Grüßen,

Sven

Content-Key: 53596

Url: https://administrator.de/contentid/53596

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: Biber
Biber 08.03.2007 um 20:43:41 Uhr
Goto Top
Moin sven1986,

willkommen im Forum.
Da verstehe ich aber gleich ziemlich vieles nicht...
Diese soll in VBscript umgesetzt werden da ich da jedoch keinerlei Erfahrung mit hab...
Wieso dann diese Vorgabe? Wieso kein Oneliner vom CMD-Prompt?
jeweils auf einem Server nach einer bestimmten Datei suchen...
Suchen oder in genau einem bestimmten Verzeichnis ("Programme") nachprüfen?
T001 - Datei vorhanden - 500kb groß - Am ..... erstellt
T002 - Datei nicht vorhanden -
Da fehlen aber ein paar Fälle.
Außer Datei vorhanden oder nicht vorhanden gibt es noch:
- Rechner nicht gefunden (falsch in der Liste oder auch einfach: nicht online)
- Verzeichnis nicht gefunden
- Zugriff verweigert
Ich habe eine Textdatei wo einfach nur T001 bis T0050 drinsteht.
Wozu? [ich unterstelle, Du meintest T001 ...T050, also fortlaufende Nummern.
Dazu brauchst Du nur eine Zählschleife, keine Datei.
... in eine seperate Textdatei ...

Wozu? zu Übungszwecken? Oder willst Du die maschinell/per Skript weiterverarbeiten?
Wenn ja - wieso diese redundanten Lyrikformulierungen?
Datei vorhanden - 500kb groß - Am ..... erstellt
--->Infogehalt: Dateigröße, Erstellungsdatum

Gruss Biber
Mitglied: bastla
bastla 08.03.2007 um 21:21:34 Uhr
Goto Top
Hallo sven1986!

Und noch eine Detailfrage von mir - Erstellungsdatum oder Datum der letzten Änderung?

@Biber

T001 bis T0050
Halte ich für denkbar (ist ja über Schleife auch einfacher so).

Wieso kein Oneliner vom CMD-Prompt?
Wegen der Formatierung der Ausgabe (kb)? face-wink
Wer (natürlich außer Dir) hat schon "DelayedExpansion" defaultmäßig eingeschaltet?

zu Übungszwecken?
Ich nehme an, ja.

Grüße
bastla
Mitglied: sven1986
sven1986 08.03.2007 um 21:37:10 Uhr
Goto Top
moin,

Die Vorgabe ist von meinem Ausbilder :-P Mache eine Ausbildung zum Fachinformatiker für Systemintegration.

Also die Server sind online, Rechte usw sind auch gesetzt, das ist alles nicht das Problem.

Es wird immer das selber Verzeichniss benutzt, es ändert sich vorne nur die Serveradresse.
Die kb sind nur obligatorisch und nur als Beispiel angedacht face-smile

Von mir aus kann man das auch mit einer Zählerschleife machen, muss nur irgendwie klappen =)

Habe das nur absolut nicht hinbekommen mit vbscript.

Danke schonma für die Meldungen
Mitglied: Biber
Biber 08.03.2007 um 21:38:15 Uhr
Goto Top
@bastla

Erstellungsdatum oder Datum der letzten Änderung?
Hmmmm .... müssen wir diese Frage bei einer Beispiel.exe-Datei ausführlich diskutieren? face-wink

Wer (natürlich außer Dir) hat schon "DelayedExpansion" defaultmäßig eingeschaltet?
Jede/r, dachte ich immer.... *kopfkratz*

Grüße
Biber
[Edit]
Die Vorgabe ist von meinem Ausbilder :-P
Mache eine Ausbildung zum Fachinformatiker für Systemintegration.
Hmmmm II... das sollten wir aber nicht ganz unterlaufen durch Posten einer Fertiglösung.
Hast Du denn schon einen Versuch/einen Ansatz, @sven1986? Magst Du ihn posten?
[/Edit]
Mitglied: bastla
bastla 08.03.2007 um 21:56:12 Uhr
Goto Top
@sven1986
Habe das nur absolut nicht hinbekommen mit vbscript.
Dann schlage ich vor, Du postest einmal, was Du bisher hast ...
@Biber
Hmmmm .... müssen wir diese Frage bei einer Beispiel.exe-Datei ausführlich diskutieren?
Also Du gönnst einem ja wirklich gar keinen Spaß ...

Grüße
bastla

[Edit] @Biber - hatte Dein Edit übersehen [/Edit]
Mitglied: sven1986
sven1986 09.03.2007 um 07:26:04 Uhr
Goto Top
Wie gesagt kenne mich mit vbscript noch wirklich garnich aus.
Das einzige was ich bissher habe ist folgendes:

Dim fso, fsoFile, Pfad, file, Text
Set fso = CreateObject("Scripting.FileSystemObject")
Set Response = CreateObject("WScript.Shell")

Response.Write(DateiInfo("\\In101008\c$\abfrage.bat"))
'Schaun ob Datei überhaupt vorhanden ist
Pfad = fso.exec("\\TS001\c$\abfrage.bat")
If fso.FileExists(Pfad) Then
Function DateiInfo(ByVal DateiName)
Set file = fso.GetFile(DateiName)
Text1 = "Pfad: " & file.Path
Text2 = Text & file.Name & " in " & file.ParentFolder
Text3 = Text & "
Erstellt: " & file.DateCreated
Text4 = Text & "
Dateigrösse " & file.size & " Bytes"
DateiInfo = Text
End Function
wscript.echo test1 & Text2 & text3 & text4
Else
wscript.echo("Datei ist nicht vorhanden.")
End if
Mitglied: sven1986
sven1986 09.03.2007 um 07:26:14 Uhr
Goto Top
Wie gesagt kenne mich mit vbscript noch wirklich garnich aus.
Das einzige was ich bissher habe ist folgendes:

Dim fso, fsoFile, Pfad, file, Text
Set fso = CreateObject("Scripting.FileSystemObject")
Set Response = CreateObject("WScript.Shell")

Response.Write(DateiInfo("\\In101008\c$\abfrage.bat"))
'Schaun ob Datei überhaupt vorhanden ist
Pfad = fso.exec("\\TS001\c$\abfrage.bat")
If fso.FileExists(Pfad) Then
Function DateiInfo(ByVal DateiName)
Set file = fso.GetFile(DateiName)
Text1 = "Pfad: " & file.Path
Text2 = Text & file.Name & " in " & file.ParentFolder
Text3 = Text & "
Erstellt: " & file.DateCreated
Text4 = Text & "
Dateigrösse " & file.size & " Bytes"
DateiInfo = Text
End Function
wscript.echo test1 & Text2 & text3 & text4
Else
wscript.echo("Datei ist nicht vorhanden.")
End if
Mitglied: sven1986
sven1986 09.03.2007 um 07:26:25 Uhr
Goto Top
sry für Doublepost dachte er hatte es nicht übernommen.

Für Hilfe wäre ich echt dankbar.
Mitglied: bastla
bastla 09.03.2007 um 08:30:41 Uhr
Goto Top
Hallo sven1986!

Auf Basis Deines Entwurfes könntest Du es etwa so machen:
Const Dateipfad = "c$\abfrage.bat"  
Const Server = "TS00"  

Dim fso, i, Pfad
Set fso = CreateObject("Scripting.FileSystemObject")  

'Mit Schleife  
For i = 1 To 50
	'Vollständiger Pfad:  
	Pfad = "\\" & Server & CStr(i) & "\" & Dateipfad  
	
	'Schaun ob Datei überhaupt vorhanden ist  
	If fso.FileExists(Pfad) Then
		WScript.Echo DateiInfo(Pfad)
	Else
		WScript.Echo "Pfad: " & Pfad & " - Datei ist nicht vorhanden."  
	End If
Next
WScript.Quit(0)

Function DateiInfo(ByVal Datei)
Dim File, Text
Set File = fso.GetFile(Datei)
Text = "Pfad: " & File.Path   
Text = Text & " - " & File.Name & " in " & File.ParentFolder  
Text = Text & " - Erstellt: " & File.DateCreated  
Text = Text & " - Dateigrösse: " & File.Size & " Bytes"  
DateiInfo = Text
End Function
Falls die Servernamen alle gleich lang sein sollen (also nicht "TS0010", sondern "TS010"), könntest Du so vorgehen:
	If i < 10 Then
		Pfad = "\\" & Server & CStr(i) & "\" & Dateipfad  
	Else
		Pfad = "\\" & Left(Server, 3) & CStr(i) & "\" & Dateipfad  
	End If
oder, besser, den Server nur mit "TS" vorgeben und dann:
Pfad = "\\" & Server & Right("00" & CStr(i), 3) & "\" & Dateipfad  
Damit wird die Nummer immer 3-stellig.

Zu überlegen wäre noch, ein "On Error Resume Next" an den Anfang zu stellen.

Grüße
bastla
Mitglied: sven1986
sven1986 09.03.2007 um 08:55:30 Uhr
Goto Top
Moin,

schonmal vielen Dank, dat klappt super. Jetzt muss ich nurnoch schaun wie ich das Ergebniss in eine Textdatei bekomme face-smile

Gruß
Mitglied: bastla
bastla 09.03.2007 um 09:14:50 Uhr
Goto Top
Hallo sven1986!

Einfach über die Konsole:
cscript //nologo D:\FileCheck.vbs > D:\Ergebnis.txt
Annahme hier ist, dass das Script als "D:\FileCheck.vbs" gespeichert wurde.

Versuch es aber trotzdem auch noch direkt aus dem Script heraus (Stichwort "OpenTextFile").

Grüße
bastla