VBScript Fehler Dateien bereits vorhanden?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wirkt sich das NOT in der Abfrage denn auf alle Folgefälle aus bzw. soll dem so sein?

If Not (pathname = "D:\4.m3u") Or (pathname = "D:\CyberGhost 6.lnk") Or (pathname = "D:\desktop.ini") Or (pathname = "D:\Electrum-LTC.lnk") Or (pathname = "D:\Electrum.lnk") Or (pathname = "D:\Lazarus.lnk") Or (pathname = "D:\Start Tor Browser.lnk") Or (pathname = "D:\TeamSpeak 3 Client.lnk") Then

Prinzipiell würde ich da mit einem regulären Ausdruck oder einem

switch

-Statement (SELECT ... CASE) arbeiten.

Des Weiteren solltest du alle versteckten (System-)Dateien bei Windows einmal einblenden lassen und via Debugger den aktuellen Einzelfall prüfen, an dem deine Anwendung da scheitert.

Ansonsten wäre die echte und vollständige Fehlermeldung interessant.


Erri2001 
Fragesteller
 05.03.2017, 22:09

1. Ja Das Not soll sich auf alle beziehen (wenn nicht das oder das oder das...)

2. Das verstehe ich nicht ganz. Es soll ja etwas geschehen wenn es nicht eine bestimmte Dateiart ist.

3. Keine versteckten Dateien

4. Weiß nicht genau wie man eine VBS Datei debuggt

5 Fehlermeldung:

Skript: E:\VBS\DesktopCleaner\DesktopCleaner.vbs
Zeile: 19
Zeichen: 1
Fehler: Die Datei ist bereits vorhanden
Code: 800A003A
Quelle: Laufzeitfehler in Microsoft VBScript
0
Erri2001 
Fragesteller
 05.03.2017, 22:12
@Erri2001

Die Zeile     MsgBox pathname      hab ich nur zum prüfen reingemacht... das Fenster wird noch angezeigt bevor der Fehler kommt

0
regex9  05.03.2017, 22:47
@Erri2001
  1. Dann müsstest du das auch für jeden Fall so angeben: IF NOT a OR NOT b OR NOT c ...
  2. Genau. Doch diese Bedingung könntest du so doch verkürzen oder lesbarer gestalten. Bei einem SELECT CASE würde im CASE ELSE dein Code angeführt werden. Sicherlich gäbe es noch andere Alternativen, bspw. das Speichern aller Pfade in einer Liste und die darauffolgende Abfrage, ob der Wert in dieser Liste vorkommt.
  3. Debugging: Es wäre für den Anfang ausreichend für dich zu erfahren, welche Datei er gerade verschieben möchte. Also lasse dir den Pfad ausgeben.
  4. Füge bei dem Zielpfad mal noch einen Backslash an, so, wie es in der Dokumentation auch aufgeführt wird. https://msdn.microsoft.com/de-de/library/2wcf3ba6(v=vs.84).aspx
0
regex9  06.03.2017, 01:32
@regex9

Nachtrag: OR NOT wäre natürlich auch nicht richtig, sondern wenn nur AND NOT oder eine Gruppierung: NOT (a OR b).

0

*Lösche alle Dateien ausser desktop.ini usw.

Woher ich das weiß:Studium / Ausbildung – ITA + Programmieren seit dem 14. Lebensjahr