Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Von VBS erstellte Batchdatei läuft nicht

Frage Entwicklung VB for Applications

Mitglied: Gurkenhobel

Gurkenhobel (Level 1) - Jetzt verbinden

18.10.2012, aktualisiert 10:18 Uhr, 2443 Aufrufe, 4 Kommentare

Hallo, wieder stehe ich einmal vor einem Rätsel und bitte um Eure Hilfe,

Mit folgendem Script erstelle ich eine Batchdatei:
01.
 
02.
EingabeDatei = "WBZInfo.csv" 
03.
Ausgabedatei = "Kat.bat" ' Die Zieldatei wird im aktuellen Verzeichnis abgelegt 
04.
 
05.
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
06.
 
07.
Set fso = CreateObject("Scripting.FileSystemObject") 
08.
 
09.
If fso.FileExists(EingabeDatei) Then 
10.
     Set objEingabe = fso.OpenTextFile(EingabeDatei, ForReading) 
11.
 
12.
Else 
13.
     MsgBox "Fehler: Eingabedatei ist nicht vorhanden." 
14.
     Wsh.Quit 
15.
End If 
16.
 
17.
Set objAusgabe = fso.CreateTextFile(Ausgabedatei, 2, True) 
18.
objEingabe.Skipline ' Die erste Zeile auslassen 
19.
 
20.
Do While not objEingabe.AtEndOfLine 
21.
 
22.
Inhalt=objEingabe.ReadLine ' ReadAll 
23.
arrays=Split(Inhalt, ";") 
24.
 
25.
' -------------------------------- 
26.
' Die Felder der Datei WBZInfo.csv 
27.
' 4/11 title 
28.
' 5/12 credit 
29.
' 7/16 category - album 
30.
' 10   ID 
31.
' 14   category 
32.
' 17   dailyDateDDMMYYYY 
33.
 
34.
AB = Chr(34) ' Hoch-Komma oder Gänsefüserl 
35.
alterName=arrays(10) & " " & arrays(4) & ".jpg" 
36.
neuerName=UCase(arrays(16)) & "=" & arrays(10) & " " & arrays(4) & ".jpg" 
37.
 
38.
objAusgabe.WriteLine "RENAME " & AB & alterName & AB &  " " & AB & neuerName & AB 
39.
 
40.
Loop 
41.
 
42.
objEingabe.Close 
43.
objAusgabe.Close 
44.
 
45.
Set objAusgabe = Nothing 
46.
Set objEingabe = Nothing 
47.
Set fso = Nothing 
48.
 
49.
MsgBox Ausgabedatei & " erstellt" 
Die Lösung mit AB (Hochkomma) mußte ich wählen, da die Dateinamen viele Leerzeichen aufweisen und so Quelle und Ziel in Hochkommas gesetzt werden mußten, damit der RENAME-Befehl zufriedenstellend arbeitet.

Es wird also eine Batchdatei erstellt, die 1800 Byte gro0 ist. Starte ich diese von der Aufgabeaufforderung aus, so kommt folgende Fehlermeldung:
Der Befehl "■R" ist entweder falsch geschrieben oder 
konnte nicht gefunden werden.
Gebe ich hingegen "type Kat.bat" ein erscheint der Umbenenn-Befehl so wie er sein soll:
RENAME "DateinameAlt.jpg" "DateinameNeu.jpg".
Nun habe ich eine neue Batchdatei 'umgepipt':
type kat.bat > ka.bat.
Diese lä0t sich nun auch ausführen und ist auch nur noch halb so groß (901 kB).

Der fc-Befehl (vergleiche kat.bat und ka.bat) zeigt bei der größeren Datei hinter jedem Zeichen einen Zeilenumbruch (daher wohl die doppelte Größe). Ein Hexeditor meiner Wahl beginnt die Datei mit FF und FE und läßt hinter jedem Zeichen ein NUll zeichen (hex 00) folgen. s. Screenshot

Wie ist das hineingekommen ?

Auf Antwort freut sich

GH Micha
Mitglied: ColdZero89
18.10.2012, aktualisiert um 11:36 Uhr
Moin,

ich kann dir allgemein nicht helfen, dennoch bin ich verwirrt. 901 KB sind nicht die hälfte von 1800 B!
KB = KiloByte ((Byte / 1000) genau genommen Byte / 1024) und Byte sind Byte.
Daher ist die "ka.bat" größer als die "kat.bat"

kat.bat = 1800Byte = 1,76KiloByte
ka.bat = 901KiloByte = 922624 Byte = 0,87MegaByte

Eventuell hast du dich verschrieben, dennoch leicht verwirrend, wenn es richtig geschrieben ist, sp ist die ka.bat halt größer als die kat.bat.

Gruß Zero
Bitte warten ..
Mitglied: bastla
18.10.2012, aktualisiert um 12:37 Uhr
Hallo Gurkenhobel!

Lass in Zeile 17 das "True" weg, da Du damit eine Unicode-Datei erzeugst ...

BTW: Wozu die Batchdatei? Umbenennen kannst Du auch mit VBS ...

Grüße
bastla
Bitte warten ..
Mitglied: Gurkenhobel
18.10.2012 um 12:55 Uhr
Hallo Bastla,
und wieder einmal hast Du mir sehr schnell helfen können, der Unicode wars.
Zitat von bastla:
BTW: Wozu die Batchdatei? Umbenennen kannst Du auch mit VBS ...
Ich mags halt immer ein bisschen umständlich.
Umbenennen müßte ich halt Zeile 38 in
01.
fso.MoveFile alterName, neuerName
@ ColdZero89
Zitat von ColdZero89:
Eventuell hast du dich verschrieben
habe ich auch unbeabsichtigt kb mit Byte verwechselt

Danke und Grüße
Micha
Bitte warten ..
Mitglied: ColdZero89
18.10.2012 um 12:59 Uhr
Moin,

ok war schon minimalverwundert.

Noch als Gelöst makieren

Gruß Zero
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...