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, 2451 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
Ähnliche Inhalte
Batch & Shell
gelöst Ausgelagerte Variablen in Batchdatei (6)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
Batchdatei auf einem Server ausführen mit psexec.exe (18)

Frage von imebro zum Thema Batch & Shell ...

Batch & Shell
gelöst Unterdrücken eines DOS Fenster bei Ausführen einer Batchdatei (10)

Frage von Zockervogel zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (18)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Grafikkarten & Monitore
Neue Graifkkarte - kein Bild (10)

Frage von bestelitt zum Thema Grafikkarten & Monitore ...

Exchange Server
gelöst Exchange 2013 - Kontakte aus CSV importieren (9)

Frage von hesper zum Thema Exchange Server ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...