Romero: DIR-Funktion in VBS oder FileExists in Javascript mit Platzhalter

Beitrag lesen

Hy Rolf

Liegt dein Ordner im Netzwerk?

Ja liegt es, leider :(

Wenn Du das Scripting.FileSystemObject nutzen kannst, dann auch bestimmt das WScript.Shell Objekt, gelle?

Jepp, kann ich nutzen :)

set WshShell = WScript.CreateObject("WScript.Shell")
counter = 0
Set wx = WshShell.Exec("cmd.exe /c dir a* /b")
Do
    line = wx.StdOut.ReadLine()
    counter = counter + 1
Loop While Not wx.Stdout.atEndOfStream

WScript.Echo "Gezählt: " + cstr(counter)

Ich habe es mal an einem direkten Ordner + Dateibeispiel gemacht, und es kam die richtige Anzahl heraus, welche in diesem Ordner liegen.

Aber dazu habe ich noch ein paar Fragen: Wie kann ich dieses a* mit 2 getrennten Variablen ersetzen? Da ich in Javascript eine Schleife starte, über alle Ordner, und dann ich diese "Hauptnamen" in den jeweiligen Ordnern suchen lasse.

Javascript:

var Ordner_arr = new Array("C:\Test\A", "C:\Test\B", "C:\Test\C", "C:\Test\D");
var Datei = "A123-10000-020AB";

for( var i = 0; i < Ordner_arr.length; i++ )
{
	var test = Auslesen_Dateien( Ordner_arr[i], Datei.replace(/-/g, "_") )
};

VBS:

Function Auslesen_Dateien( Hauptpfad, Datei )
	Dim WshShell, WScript
	Dim wx, line
			
	set WshShell = CreateObject("WScript.Shell")
	counter = 0
	Set wx = WshShell.Exec("cmd.exe /c dir Hauptpfad & '\' & Datei* /b")
	Do
		line = wx.StdOut.ReadLine()
		counter = counter + 1
	Loop While Not wx.Stdout.atEndOfStream
			
	MsgBox "Gezählt: " + cstr(counter)
End Function

Das sind die beiden Funktionen. Gebe ich den Pfad direkt händisch an, so gibt er mir die korrekte Anzahl raus. Nur wie kann ich das mit Variablen machen? Wenn ich es so wie oben mache, bringt er mir zwar beim ersten Durchlauf die richtige Gesamtanzahl aus, aber müsste er da nicht für jeden Ordner die korrekte Anzahl anzeigen? Also auch mal eine "0", wenn da nix gefunden wurde?

Und wie kann ich mir den Namen anzeigen lassen? Mit MsgBox wx (Anhand oben), zeigt er mir ein Fehler an. Mit MsgBox wx.Name ebenso. Ich würde mir die Namen hier in ein Array speichern lassen, wo ich dann deren Inhalt auslesen kann.

Danke für deine Hilfe bisher...

LG Romero