.bat-Datei Fehler!

Hi!
Hab’ mit hier eine Bat-Datei geschrieben, mit der ich die Bilder von meiner Digicam auf meinen Rechner ziehen kann. Leider bekomme ich immer wenn ich den mive Befehl ausführen will einen Syntaxfehler angezeigt! Wo liegtder Fehler?

Source:
cd …\Eigene Dateien\Eigene Bilder
mkdir Aktuell
move H:\Interner Speicher*.jpg E:\Eigene Dateien\Eigene Bilder\Aktuell
move H:\Interner Speicher*.mov E:\Eigene Dateien\Eigene Bilder\Aktuell
move H:\Picture Card\DCIM\100K4530*.jpg E:\Eigene Dateien\Eigene Bilder\Aktuell
move H:\Picture Card\DCIM\100K4530*.mov E:\Eigene Dateien\Eigene Bilder\Aktuell
pause

Außerdem würde ich gerne noch wissen, wie ich alle Dateien eines bestimmten Dateityps so umbenennen kann, dass sie alle durchnummeriert sind. Kann mir da jemand helfen?

Tschöööö

move H:\Interner Speicher*.jpg E:\Eigene Dateien\Eigene
Bilder\Aktuell

windows hat so seine probleme mit leerzeichen. daher musst du den pfad in hochkomma einschließen:

move „h:\interner speicher*.jpg“ „e:\eigene dateien\eigene bilder\aktuell“

erwin

THX!

Hast du auch ne Lösung zu meinem zweiten Problem?

Hallo,
da klinke ich mich mal ein. :wink:
Verstehe ich das richtig? Du Hast mehrere Dateien mit der selben Endung und möchtset die alle mit dem selben Namen, aber fortlaufenden Nummern bezeichnet haben? In VB ist das ein Programmieraufwand von wenigen Minuten.
Wenn ich Dich wirklich richtig verstanden habe, kannst Du das bis Sonntag Abend haben. Nur bestätigen, dann kommt hier der Link. So was macht keine Arbeit.
(wird mit allen DLLs etwa 3 MB groß werden)
cu Rainer

Hmm,… eigentlich sollte das nur ne Erweiterung meiner Bat-datei werden.
Ja, ich will, das alle Dateien die in den Ordner gezogen werden fortlaufend nummeriert werden!

Hallo,
Mit Batches kenne ich mich nicht so gut aus.
Du kannst es ja noch mal mit ner neuen Frage versuchen.
Ein Aussagekräftiger Betreff wirkt da Wunder.

cu Rainer

ist vb nicht etwas viel aufwand dafür? mit vbscript klappt es doch genauso - und das ist auf praktisch jedem windows-rechner fertig installiert.

erwin

Außerdem würde ich gerne noch wissen, wie ich alle Dateien
eines bestimmten Dateityps so umbenennen kann, dass sie alle
durchnummeriert sind. Kann mir da jemand helfen?

mit batch-dateien klappt es schon - allerdings meines wissens nach nur unter winnt, win2k oder winxp. nicht unter win9x (auch me). grund: nur die erweiterte eingabeaufforderung cmd.exe hat vernünftige befehle, mit denen man so halbwegs rechnen kann. trotzdem ist das ganze extrem kompliziert und praktisch nicht wartbar. ich würde daher davon abraten.

natürlich kannst du auch externe programme verwenden, die speziell dafür programmiert wurden. offenbar hat dir ja schon jemans sowas angeboten. das hat aber den nachteil, dass das ganze dann nicht mehr so leicht an neue gegebenheiten anpassbar ist.

sinnvoller wäre es, eine richige skriptsprache einzusetzen. dabei muss es ja nicht unbedingt perl sein - das müsste auch erst wieder installiert werden. vbscript ist aber praktisch auf jedem windows-system installiert (bei win98 muss man allerdings beim setup explizit aktivieren). gemeinsam mit dem windows skript host, der auf jedem system drauf ist, das einen internet-explorer installiert hat, kann man schon feine skripte schreiben, die

  1. leicht lesbar sind
  2. leicht wartbar und damit an neue anforderungen anpassbar sind

da die notwendigen runtimes ohnehin installiert sind, brauchst du eigentlich nur die skript-datei selbst. die skripte können auch ohne probleme von einer bat-datei aus aufgerufen werden.

einziger wirklich gravierender nachteil: vbskript setzt zwingend voraus, dass ein windows läuft. und reinem msdos (heisst ja inzwischen kommandozeilenumgebung) klappt das nicht.

wenn du interesse an so einer lösung hast, melde dich einfach wieder.

erwin

Die Bat-Datei läuft nur auf Win2k und WinXP Rechnern, deshalb hab’ ich damit keine Probleme!
Ich hab’ mal n Praktikum bei einem Betrieb gemacht, und da hat der Azubi auch n haufen Dateien Durchnummeriert mit ner bat-Datei, deshlab weiß ich das es geht. Aber wie weiß ich halt net!
Also ich würds scho gern über ne Bat machen und nichts anderes dazu benutzen!

hier ist einmal ein vbscript, dass alle dateien mit endung „TXT“ im verzeichnis c:\temp durchnumeriert:

dim fso
dim folder
dim file
dim filenumber
dim filename
dim ext
dim length
dim temp

set fso = CreateObject(„Scripting.FileSystemObject“)

set folder = fso.GetFolder(„C:\temp“)

filenumber = 0

for each file in folder.Files
ext = fso.GetExtensionName(file.Path)
if ext = „txt“ then
’ neuen namen generieren
filename = cstr(filenumber)
length = Len(filename)
temp = String(8-length,„0“)
filename = temp & filename & „.“ & ext
filename = fso.BuildPath(file.ParentFolder.Path,filename)
file.Move(filename)
filenumber = filenumber + 1
end if
next

einfach den obigen text in einer datei mit endung „vbs“ abspeichern. du kannst diese datei genauso wie eine normale batch-datei aufrufen. (allerdings musst du die endung „.vbs“ mitangeben. ansonsten benötigst du keinerlei spezielle aufrufsyntax.

bei bedarf kann man das basisverzeichnis und die dateiendung auch per parameter aus der batch-datei heraus angeben. im obigen beispiel müsstest du z.b. folgendes einfügen:

dim foldername

foldername = WScript.Arguments(1)
set folder = fso.GetFolder(foldername)

ob ausreichen argumente angegeben wurden, kannst du mit

WScript.Arguments.length

prüfen. z.b.

if WScript.Arguments.length

1 Like

Ok, Thx, ich schau mir des mal an und meld mich wenns Probleme gibt!

Wenn ich des richtig sehe, benennt mir dein VBScript alle Dateien nur nach einer Zahl, richtig? Ich will aber das die Bilder, die von meinem Foto rübergezogen werden, Einen Namen X haben und dann durchnummeriert werden. Wenns geht sollte das Script auch nach dem Namen X nachfragen? Kannst du des machen?

Wenn ich des richtig sehe, benennt mir dein VBScript alle
Dateien nur nach einer Zahl, richtig? Ich will aber das die
Bilder, die von meinem Foto rübergezogen werden, Einen Namen X
haben und dann durchnummeriert werden. Wenns geht sollte das
Script auch nach dem Namen X nachfragen? Kannst du des machen?

einfach die zeile
filename = temp & filename & „.“ & ext

durch z.b.
filename = „urlaub03“ & temp & filename & „.“ & ext

ausbessern.

natürlich geht auch:
filename = WScript.Arguments(3) & temp & filename & „.“ & ext

dann wird das 3. Argument, dass dem skript übergeben wurde, herangezogen.

was du wahrscheinlich willst, wäre folgendes:

dim prefix

prefix = inputbox („Bitte den Namen für die Bilder eingeben“)

filename = prefix & temp & filename & „.“ & ext

wie du siehst, mit vbscript kann man so manches machen. da vbscript auch ole-fähig ist, kannst du theoretisch auch word von vbscript aus fernsteuern. mehr noch, über die dcom-schnittstelle kannst du das ganze sogar auf anderen computern im netz starten. man kann damit skriptgesteuert mehrere pcs fernwarten.

stellt sich damit die frage, ob du nicht besser die gesammte verarbeitung auf vbscript umstellst. wäre doch sinnvoller, die dateien in einem rutsch zu verschieben und gleichzeitig umzubenennen. mit ein paar abfragen dazwischen, damit das ganze halbwegs flexibel bleibt.

bei der programmierung kann ich dir etwas unter die arme greifen. allerdings bräuchte ich dann eine ziemlich detaillierte beschreibung von dem, was das skript können soll.

erwin

Ok,du hast mih überzeugt! *gg*
VBScript is geil! *gg*
Ich hab’ früher schonmal mit VBScript rummprobiert!
Is aber schon ewig her!
Hast du ICQ oder ne E-mailadresse?
Wär cool wenn du mir die mal geben könntest dann müssen wir das nicht immer übers Forum machen!
Kennst du irgendwelchen Tuts über VBS?

Tschööö

schon mal rechts neben meinen namen geschaut? steht oben über dem artikel…

erwin

Kennst du irgendwelchen Tuts über VBS?

ach ja, ganz vergessen:
http://msdn.microsoft.com/library/default.asp?url=/l…

und natürlich

http://www.google.at/search?sourceid=navclient&hl=de…

Hallo!

Sehr interessanter Thread!

Bringt mich auf die Idee, wie ich eine schnelle, einfache Datenerfassung umsetzen kann. Allerdings muss ich mich jetzt reinknien, bin in VBS abs. Newbie! :wink:

Im Zusammenhang mit Links/Tutorials finde ich dieses Portal ganz gut:

http://activevb.de/

HTH

CU DannyFox64