vbscript verzeichnisabfrage mit variable

volker

Supermoderator
Teammitglied
Beiträge
5.805
Reaktionspunkte
1.027
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo

kann mir mal jemand auf die sprünge helfen und mir erklären warum das nicht geht.
ist ein op277

PHP:
Dim fs,f,path
path="storage card mmc\test"
SmartTags("zs_root_b1path") = "storage card mmc\test"
 
Set fs = CreateObject("filectl.filesystem")
Set f= CreateObject("filectl.file")

PHP:
If fs.dir (path) = "" Then 
  fs.mkdir (zs_root_b1path)
End If
das geht


PHP:
If fs.dir ("storage card mmc\test") = "" Then 
  fs.mkdir (zs_root_b1path)
End If
das geht


PHP:
If fs.dir (SmartTags("zs_root_b1path")) = "" Then 
  fs.mkdir (zs_root_b1path)
End If
das geht nicht. warum?

der fehler ist das If fs.dir (SmartTags("zs_root_b1path"))

Fehler 'Invalid procedure call or argument' in Script ...
 
Hast du dir mal den Inhalt von "SmartTags("zs_root_b1path")" angesehen ?

Ist vielleicht ein blöder Beitrag zur Sache, aber ich hatte schon mal den Fall, dass ich ein bißchen kleinlich mit der Stringgröße war bzw. das noch zusätzliche Zeichen, die ich eigentlich nicht mit zugewiesen hatte da drin standen ...

Was passiert, wenn du die o.g. WccF-Variable in einer VB-Variablen zwischenlagerst bevor du sie dann im Script weiter verwendest ...?

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
80 zeichen. reicht also dicke.

für das fs.mkdir wird ja die gleiche variable benutzt. das funktioniert komischerweise.

probiert hab ich natürlich auch
PHP:
If fs.dir (zs_root_b1path) = "" Then
was natürlich auch nicht geht
 
noch was

jetzt mach ich so

PHP:
DIM t_root_b1path
t_root_b1path="storage card mmc\test"

zs_root_b1path = t_root_b1path
 
zs_jahr="20"&Right(Date,2)
 
If fs.dir (t_root_b1path) = "" Then fs.mkdir (zs_root_b1path)
If fs.dir (t_net_b1path&"\"&zs_jahr) = "" Then fs.mkdir (zs_net_b1path&"\"&zs_jahr)
das funktioniert.
was mich hier jetzt verwirrt ist, das das verz zs_jahr (also zz 2008) angelegt wird, obwohl dies ja auch eine variable ist.

probiert hab ich auch ein \ vor das storage card zu setzen. klappt aber auch nicht
 
Hast du mal getestet, ob recht noch Leerzeichen mit dranhängen ?
Code:
Dim Pfad
 
Pfad = rtrim ([COLOR=#0000cc][FONT=Courier New]zs_root_b1path[/FONT][/COLOR])
[COLOR=#000000][COLOR=#0000cc][/COLOR][FONT=Courier New][COLOR=#006600]If [/COLOR][COLOR=#0000cc]fs[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000cc]dir [/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc][COLOR=#000000]Pfad [/COLOR][/COLOR][COLOR=#006600]) = [/COLOR][COLOR=#cc0000]"" [/COLOR][/FONT][FONT=Courier New][COLOR=#0000cc]Then 
  fs[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000cc]mkdir [/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc][COLOR=#000000]Pfad [/COLOR][/COLOR][/FONT][FONT=Courier New][COLOR=#000000][COLOR=#006600])
[/COLOR][COLOR=#0000cc]End [/COLOR][/COLOR][/FONT][COLOR=#006600][FONT=Courier New]If  [/FONT]
[/COLOR][/COLOR]
Versuch doch mal das ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
brauch ich gar nicht probieren. wie sollen da leerzeichen vorne/hinten sein, wenn ich die so zuweise.

zs_root_b1path = "storage card mmc\test"

und es klappt ja wenn zs_root_b1path keine wccf-var ist sondern eine dimensionierte vbscript-var
 
Denk bitte dran, dass eine VB-Script-Var vom Datentyp Variant ist und die Flex-Var ein Siemens-Eigenbau-String ...
nun ja, ok

aber bei den funktionen fs.mkdir, fs.kill, fs.filecopy funktioniert das ja auch mit der flex-var.
auch das prüfen ob eine datei existiert funktioniert mit der flex-var

nur eben das prüfen ob das verzeichnis existiert eben nicht

zs_root_b1path ist eine flex-var
PHP:
dateiname=zs_root_b1path&"\"&zs_jahr&"\temp_"&zs_jahr&"-"&zs_monat&".csv"
If fs.dir(dateiname) = "" Then
 
 fs.kill zs_net_b1path&"\"&zs_jahr&"\temp_"&zs_jahr&"-"&zs_monat&".csv"
 fs.filecopy zs_root_b1path & "\"&zs_jahr&"\temp_"&zs_jahr&"-"&zs_monat&".csv", zs_net_b1path&"\"&zs_jahr&"\temp_"&zs_jahr&"-"&zs_monat&".csv"
das funktioniert alles
 
Zurück
Oben