Fehler in VBS-Datei! Aber wo?

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

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

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

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

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

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

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

Macht nix, kommt Plan B :smile:

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