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 
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