Fehler in VBS-Datei! Aber wo?

Von: , Frage gestellt am Di, 3. Sep 2002

Hi! Die folgende VBS Datei läuft privat auf meinem WinXP, nun wollte ich in der Arbeit ebenfalls täglich eine Sicherungskopie von "liste.xls" machen allerdings gehts mit Win NT nicht!!! Warum?

Anbei die Zeilen:

dim heute, SaveFile, fso
heute = date
SaveFile = "P:\xy\ab\test\Ax8\2002\SIK-Dateien\" + left(heute,2) + mid(heute,4,2) + right(heute,4) + ".xls"
set fso = CreateObject("Scripting.FileSystemObject")
fso.copyfile "liste.xls", SaveFile


Die Fehlermeldung lautet:

Kompilierungsfehler in Microsoft VBScript
(Zeilennummer: 1 Spalte: 0)

Danke!

Markus

7 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: Fehler in VBS-Datei! Aber wo?

    Hallo Markus,

    die Fehlermeldung, die du beschreibst, erhalte ich nicht unter NT. Ich habe dein Programm mal kurz getestet und bis auf den Fehler

    right(heute,4) [ richtig ist aber right(heute,2) ]

    funktioniert es. Hier ist mal meine Version die funzt (natürlich musst du noch das richtige DIR wieder einsetzen).

    '*********************************************
    '** Automatisches Backup **
    '** **
    '** Autor : Hans Krause **
    '*********************************************
    dim heute, SaveFile, fso

    heute = date
    SaveFile = "c:\hk\vbscript\" + left(heute,2) + mid(heute,4,2) + right(heute,2) + ".xls"

    'SaveFile = "P:\xy\ab\test\Ax8\2002\SIK-Dateien\" + left(heute,2) + mid(heute,4,2) + right(heute,2) + ".xls"

    'Kontrollausgabe
    WScript.Echo SaveFile

    set fso = CreateObject("Scripting.FileSystemObject")
    fso.copyfile "liste.xls", SaveFile



    Gruss
    Hans

    • Antwort von nach 3 Stunden 0 hilfreich
      Re^2: Fehler in VBS-Datei! Aber wo?

      Hallo Hans!

      Ich habe Dein Script kopiert und es sieht nun folgendermaßen aus(Original):

      dim heute, SaveFile, fso

      heute = date
      SaveFile = "C:\temp\" + left(heute,2) + mid(heute,4,2) + right(heute,2) + ".xls"

      'SaveFile = "C:\temp\" + left(heute,2) + mid(heute,4,2) + right(heute,2) + ".xls"

      'Kontrollausgabe
      WScript.Echo SaveFile

      set fso = CreateObject("Scripting.FileSystemObject")
      fso.copyfile "test.xls", SaveFile


      Trotzdem bekomme ich die Fehlermeldung:

      Kompilierungsfehler in Microsoft VBScript
      Zeilennummer: 1 Spalte: 0

      Was kanns denn noch sein??????

      Gruß

      Markus

      • Antwort von nach 9 Stunden 0 hilfreich
        Re^3: Fehler in VBS-Datei! Aber wo?

        Hallo Markus,

        also bei mir klappt es. Kuck mal welche vbscript.dll du im NT Verzeichnis ..\system32\vbscript.dll hast (rechts klick und Eigenschaften).
        Meine Version ist 5.1.0.5010 in Englisch.
        Ein anderer Versuch ist die Fehlermeldung mal ernst zu nehmen. Dann hat der Script host etwas gegen das "heute". Es gibt in vbscript den Befehl "now" vielleicht hast du eine deutsche vbscript version und da kommt etwas durcheinander (= wilde Theorie).
        Probier doch mal folgendes dim SaveFile, fso

        'die nächste Zeile ist auskommentiert
        'heute = date
        SaveFile = "C:\temp\" + left(date,2) + mid(date,4,2) +
        right(date,2) + ".xls"
        'SaveFile = "C:\temp\" + left(heute,2) + mid(heute,4,2) +
        right(heute,2) + ".xls"

        'Kontrollausgabe
        WScript.Echo SaveFile

        set fso = CreateObject("Scripting.FileSystemObject")
        fso.copyfile "test.xls", SaveFile

        Gruß
        Hans

        • Antwort von nach 23 Stunden 0 hilfreich
          Habs jetzt über 'DOS' probiert!

          Hi Hans!

          Also, nachdem ich auch eine englische Version habe (5.0.0.3715) u. es mit "date" auch nicht ging habe ich eine *.bat Datei in MS-DOS erstellt:

          xcopy P:\xy\A-A\Auskunft\test.XLS C:\SIK-DATEIEN\LTE.XLS /R /U

          Kann ich da an die Datei "LTE.XLS" noch irgendwie das Datei dazubringen (z.B. LTE040902.XLS) damit ich täglich eine neue Datei kopiere?

          Danke!

          Markus

          • Antwort von nach einem Tag 0 hilfreich
            Re: Habs jetzt über 'DOS' probiert!

            xcopy P:\xy\A-A\Auskunft\test.XLS C:\SIK-DATEIEN\LTE.XLS /R /U

            Kann ich da an die Datei "LTE.XLS" noch irgendwie das Datei
            dazubringen (z.B. LTE040902.XLS) damit ich täglich eine neue
            Datei kopiere?
            Hi Markus,
            probier mal:

            @echo off
            echo @prompt set Datum=$d> c:\temp\tmp1.bat
            echo set Datum=%%2 > c:\temp\tmp3.bat
            %comspec% /c c:\temp\tmp1.bat> c:\temp\tmp2.bat
            call c:\temp\tmp2.bat
            call c:\temp\tmp3.bat %Datum%
            del c:\temp\tmp1.bat
            del c:\temp\tmp2.bat
            del c:\temp\tmp3.bat
            rem echo %Datum%
            xcopy P:\xy\A-A\Auskunft\test.XLS C:\SIK-DATEIEN\LTE%Datum%.XLS /R /U
            Gruß
            Reinhard

            • Antwort von nach 2 Tagen 0 hilfreich
              Fast....

              Hallo Reinhard!

              Die Batch-Datei gefällt mir allerdings fuzzt sie noch nicht ganz.

              Ich bekomme die Fehlermeldung:

              "Unzulässige Anzahl von Paramater"

              Ich hab' schon ein bisschen getestet und festgestellt, daß ihm das Datum (%Datum%) noch Probleme bereitet.

              Simmt in der Zeile evtl. was nicht? xcopy P:\xy\A-A\Auskunft\test.XLS
              C:\SIK-DATEIEN\LTE%Datum%.XLS /R /U
              Danke!

              Markus

            • Antwort von nach 2 Tagen 0 hilfreich
              Macht nix, kommt Plan B :-)

              Ich bekomme die Fehlermeldung:
              "Unzulässige Anzahl von Paramater"
              Ich hab' schon ein bisschen getestet und festgestellt, daß ihm
              das Datum (%Datum%) noch Probleme bereitet.
              Hallo Markus,
              kaum zu glauben aber dos hängt da an die 2002 in %Datum% noch ein stures Leerzeichen an, was auch mit 'set Datum2=%Datum%' o.ä. nicht weggeht. xcopy sieht dann durch diese Lücke im Dateinamen .xls als Parameter zur Datei lte09-05-2002 an...

              Na gut, neuer Versuch, diese Batch ist länger aber besser weil man den Dateinamen besser variieren kann:

              @echo off
              rem Programm erwartet das Datumsformat beim date-befehl in der Form wt, mm-tt-jjjj
              rem und setzt daraufhin die umgebungsvariablen wt,tt,mm,jj
              if "%1"=="" goto datumeinlesen
              if "%2"=="" goto wochentag
              if "%3"=="" goto tag
              if "%4"=="" goto monat
              find "-%4" datum.tmp > nul
              if not errorlevel==1 if errorlevel==0 set jjjj=%4
              goto ende wochentag
              find "%1," datum.tmp > nul
              if not errorlevel==1 if errorlevel==0 set wt=%1
              goto ende tag
              find "-%2-" datum.tmp > nul
              if not errorlevel==1 if errorlevel==0 set tt=%2
              goto ende monat
              find "%3-" datum.tmp > nul
              if not errorlevel==1 if errorlevel==0 set mm=%3
              goto ende datumeinlesen
              echo.|date > c:\temp\datum.tmp
              for %%n in (So Mo Di Mi Do Fr Sa) do call %0 %%n
              for %%n in (01 02 03 04 05 06 07 08 09 10) do call %0 nix %%n
              for %%n in (11 12 13 14 15 16 17 18 19 20) do call %0 nix %%n
              for %%n in (21 22 23 24 25 26 27 28 29 30 31) do call %0 nix %%n
              for %%n in (01 02 03 04 05 06 07 08 09 10 11 12) do call %0 nix nix %%n
              for %%n in (2001 2002 2003 2004 2005 ) do call %0 nix nix nix %%n
              xcopy c:\autoexec.bat c:\temp\lte%jjjj%%mm%%tt%.xls
              set wt=
              set tt=
              set mm=
              set jjjj=
              if exist c:\temp\datum.tmp del c:\temp\datum.tmp
              if exist c:\temp\d.tmp del c:\temp\d.tmp
              cls ende
              Falls date nicht mm-tt-jjjj erzeugt sondern tt/mm/jjjj kann man das evtl. mit country.sys in config.sys abändern.
              Oder hier in der Batch die find-Befehle abändern.

              Wenn von xcopy eine Abfrage kommt nach Datei oder Verzeichnis dann den xcopy-Befehle ersetzen durch diese Zeilen
              echo d > c:\temp\d.tmp
              xcopy c:\autoexec.bat c:\temp\lte%jjjj%%mm%%tt%.xls < c:\temp\d.tmp

              Ich habe nur das dos mit/von win98, da funktionierte es gut aber da gibt es nicht deine xcopy-Parameter, deshalb habe ich sie hier weglassen, was bedeuten sie eigentlich?
              Gruß
              Reinhard
              ps: falls da täglich mehrere Dateien gesichert werden sollten/müssten ist die Batch sehr gut, es empfieglt sich dann sowas wie folgt einzubauen:
              c:
              cd\
              md %jjjj%%mm%%tt%
              xcopy c:\...\*.doc c:\%jjjj%%mm%%tt% /s
              xcopy c:\...\*.xls c:\%jjjj%%mm%%tt% /s
              xcopy ...

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!