Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

*.BAT Dateien umbennen (Nur die ersten zwei Zeichen)





Frage

Gibt es eine möglichkeit per bat dateien umzubennen wo er automatisch dann die ersten zwei zeichen (es sind zwei 00) umbennent!? Es soll aus "00" "test00" machen. Da aber im namen wo anders auch nullen sind geht das nicht so einfach. Kann mir jemand helfen. Vielen Dank

Antwort 1 von Gast 578

Falls Dir mit der BAT niemand weiterhilft, versuche es mal mit "Joe" http://www.chip.de/downloads/c1_downloads_13004904.html

Antwort 2 von SnakeBite334

Danke aber ein Umbennenungsprogramm habe ich bereits. Per bat wäre super weil in der bat datei noch andere Befehle drin sind die ausgeführt werden sollen.

Hoffe mir kann jemand helfen.

Vielen Dank

André

Antwort 3 von SnakeBite334

Kann mir wer helfen?!

Antwort 4 von firefox

gib doch mal ein paar mehr Beispiele an, wie die Umbenennung aussehen soll ...

Wie können die Dateinamen noch aussehen?

Antwort 5 von SnakeBite334

Die Dateien sehen alle wie folgt aus: "00456123"
Immer zwei Nullen und dann 6 Zahlen. Man kann aber nicht einfach 00 durch "test00" ersetzen, da ab und zu auch in den Zahlen mal "00" stehen könnte. Es soll also genau die ersten beiden Nullen durch "test00" ersetzen.
Vielen Dank für die Hilfe

Antwort 6 von SnakeBite334

kann mir wirklich keiner helfen!?

Antwort 7 von Event

Hallo
Wenn die Dateien alle einen 8-Stelligen Präfix haben könnte es so gehen:

ren 00??????.* test00??????.*

aber ohne Gewähr °;-)

Gruß

Antwort 8 von Event

ergänzend:
Falls die Dateien alle keinen Suffix haben:

ren 00??????. test00??????

Antwort 9 von vadder

Antwort 10 von SnakeBite334

Wenn ich das in der bat datei stehen habe und die datei so hieß "00629506.jbh":

ren c:\test\00??????.jbh test00??????.jpg
move c:\test\*.jpg c:\test2

kommt als ergebnis das bei raus:

"test0006.jpg"

Irgendwie funktioniert das noch nicht so ganz!?

HILFE.....

Antwort 11 von SnakeBite334

@ vadder der link leitet immer auf die http://www.freeware.de/ seite weiter.!? ist das ein prog oder nur ein script.?! porgramme brauche ich nicht.
vielen dank

Antwort 12 von SnakeBite334

@ vadder

geht nun doch.

Antwort 13 von SnakeBite334

Das Programm macht aber nicht das was ich brauche, außerdem sollte es kein Programm sein. Kann mir trotzdem jemand helfen!?

Antwort 14 von Event

Hallo

Vielleicht klappts so:

ren 00??????.* test*.*

Gruß

Antwort 15 von SnakeBite334

Klappt leider genau sowenig....

Antwort 16 von Event

Hallo

Welches BS hast Du w9x/w2k/xp ?

Gruß

Antwort 17 von SnakeBite334

windows xp sp2

Antwort 18 von Fanno

Vielleicht geht es mit einem VBS-Script. Alle Dateien im Ordner "c:\\ordnername", die mit "00" anfangen, bekommen ein "test" vorangestellt. Aufruf des Scripts in der Shell wäre "CScript Scriptname.vbs".

dir="c:\\ordnername"
set fso=createobject("scripting.filesystemobject")
set o=fso.getfolder(dir)
set f=o.files
for each ff in f
 if left(ff.name,2)="00" then fso.movefile ff,dir&"\\test"&ff.name
next
wscript.quit

- Ohne Gewähr! -

Antwort 19 von Fanno

Irgendwer hat wohl den Backslash-Bug im SN behoben! Hier die berichtigte Version:

dir="c:\ordnername"
set fso=createobject("scripting.filesystemobject")
set o=fso.getfolder(dir)
set f=o.files
for each ff in f
 if left(ff.name,2)="00" then fso.movefile ff,dir&"\test"&ff.name
next
wscript.quit


Antwort 20 von SnakeBite334

was ist die shell?! und wo muss ich das rein tun!? und aufrufen!?

Antwort 21 von SnakeBite334

schon ok funktioniert. aber noch eine frage wie kann ich in vbs mehrer Ordner öffen und die dateieindung jbh in jpg ändern!?
Vielen Dank

Antwort 22 von Fanno

Die Liste der Ordner in der ersten Zeile kannst Du erweitern. Es muß nur immer ein Komma als Trennzeichen eingefügt werden:

d=array("c:\ordner1","c:\ordner2")
set fso=createobject("scripting.filesystemobject")
for each dd in d
 set o=fso.getfolder(dd)
 set f=o.files
 for each ff in f
  if right(lcase(ff.name),4)=".jbh" then
   fso.movefile ff,dd&"\"&left(ff.name,len(ff.name)-4)&".jpg"
  end if
 next
next

Anwenden ist wieder auf eigene Gefahr!

Antwort 23 von SnakeBite334

er macht keine Ordner auf.... :-(

habe jetzt das hier.

dir="c:\test"
set fso=createobject("scripting.filesystemobject")
set o=fso.getfolder(dir)
set f=o.files
for each ff in f
if left(ff.name,2)="00" then fso.movefile ff,dir&"\face"&ff.name
next
d=array("c:\test","c:\test2","c:\test3","c:\test4")
set fso=createobject("scripting.filesystemobject")
for each dd in d
set o=fso.getfolder(dd)
set f=o.files
for each ff in f
if right(lcase(ff.name),4)=".jbh" then
fso.movefile ff,dd&"\"&left(ff.name,len(ff.name)-4)&".jpg"
end if
next
next
wscript.quit

Wie macht man Programme auf!?

Vielen Dank für deine Hilfe!!!

Antwort 24 von Fanno

Was meinst Du mit "er macht keine Ordner auf?" Willst Du ein Skript, daß alle Unterordner mitmacht? Kannst ja mal das probieren:

dir="c:\ordnername"
dim fso
set fso=createobject("scripting.filesystemobject")
rename(dir)
wscript.quit

sub rename(dir)
 set o=fso.getfolder(dir)
 set f=o.files
 for each ff in f
  if right(lcase(ff.name),4)=".jbh" then
   fso.movefile ff,dir&"\"&left(ff.name,len(ff.name)-4)&".jpg"
  end if
 next
 set u=o.subfolders
 for each uu in u
  rename(uu)
 next
 set o=nothing
 set f=nothing
 set u=nothing
end sub

Und was meinst Du mit Öffnen von Programmen?

Antwort 25 von SnakeBite334

Er soll nur verschiedene Ordner und verschiedene Programme aufmachen wenn ich auf das script klicke.

Vielen Dank werde gleich mal testen.

Antwort 26 von SnakeBite334

Nun macht er nur noch das face vor die zwei Nullen, er macht keine Ordner auf und auch kein Programm. Kannst mir das script vervollständigen!?
Vielen Vielen Dank


dir="c:\BildervonAPIS\facetoface"
set fso=createobject("scripting.filesystemobject")
set o=fso.getfolder(dir)
set f=o.files
for each ff in f
 if left(ff.name,2)="00" then fso.movefile ff,dir&"\face"&ff.name
next
wscript.quit
d=array("c:\Auswahl","c:\Scan")
set fso=createobject("scripting.filesystemobject")
for each dd in d
 set o=fso.getfolder(dd)
 set f=o.files
 for each ff in f
  if right(lcase(ff.name),4)=".jbh" then
   fso.movefile ff,dd&"\"&left(ff.name,len(ff.name)-4)&".jpg"
  end if
 next
next


Antwort 27 von Gummikuh

..............

Antwort 28 von Fanno

Sorry, aber Du mußt Dich mal präziser ausdrücken. Ich verstehe nicht was Du willst. Also ich rat mal: Du willst ein Skript, daß in mehreren Ordnern und jeweils allen dazugehörigen Unterordnern, bei allen Dateien sowohl das "test" vor die zwei Nullen schreibt, als auch ggfs. die Dateiendung austauscht? Das müßte so gehen:

d=array("c:\ordner1","c:\ordner2")
dim fso
set fso=createobject("scripting.filesystemobject")
for each dd in d
 rename(dd)
next
wscript.quit

sub rename(dir)
 dim o,f,ff,action,name,u,uu
 set o=fso.getfolder(dir)
 set f=o.files
 for each ff in f
  name=ff.name
  action=false
  if right(lcase(name),4)=".jbh" then
   name=left(name,len(name)-4)&".jpg"
   action=true
  end if
  if left(name,2)="00" then
   name="test"&name
   action=true
  end if 
  if action then fso.movefile ff,dir&"\"&name
 next
 set u=o.subfolders
 for each uu in u
  rename(uu)
 next
 set o=nothing
 set f=nothing
 set u=nothing
end sub


Ein Programm startet man so:

set shell=createobject("wscript.shell")
shell.run "notepad",,true
msgbox "ENDE"

Der Notepad wird gestartet und auf seine Beendigung gewartet. Die optionalen Parameter der Run-Methode kannst Du dort nachschauen:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthrun.asp

Antwort 29 von Gummikuh

So,
nach längerem "Basteln" und google sei Dank, ein(e)
Lösung(-sansatz):

for %%f in (00*.txt) do copy %%f c:\test\test\test%%f

Hier das Quellverzeichniss:
Verzeichnis von C:\test
Datum Uhrzeit Größe/Name
21.04.2005 20:17 <DIR> .
21.04.2005 20:17 <DIR> ..
21.04.2005 20:16 11 001.txt
21.04.2005 20:16 11 0012.txt
21.04.2005 20:16 11 00123.txt
21.04.2005 20:16 11 001234.txt
21.04.2005 20:16 11 0012345.txt
21.04.2005 20:16 11 00123456.txt
21.04.2005 20:16 11 001234567.txt
21.04.2005 20:16 11 0012345678.txt
21.04.2005 20:16 11 00123456789-10.txt
21.04.2005 20:16 11 00123456789.txt
21.04.2005 20:14 55 go.bat
21.04.2005 20:17 <DIR> test

hier das Zielverzeichniss:
Verzeichnis von C:\test\test
Datum Uhrzeit Größe/Name
21.04.2005 20:17 <DIR> .
21.04.2005 20:17 <DIR> ..
21.04.2005 20:17 0 info2.txt
21.04.2005 20:16 11 test001.txt
21.04.2005 20:16 11 test0012.txt
21.04.2005 20:16 11 test00123.txt
21.04.2005 20:16 11 test001234.txt
21.04.2005 20:16 11 test0012345.txt
21.04.2005 20:16 11 test00123456.txt
21.04.2005 20:16 11 test001234567.txt
21.04.2005 20:16 11 test0012345678.txt
21.04.2005 20:16 11 test00123456789-10.txt
21.04.2005 20:16 11 test00123456789.txt

Das sollte doch genau das sein was Dir vorschwebt?
Leider ha das Prog. in dieser Art eine kleine Einschränkung: Es muss im Quellverzeichnis aufgerufen werden.
Wenn Du es von wo anders startest, wird in %%f der komplette Pfad mit angegeben und an den Dateinamen drangehängt.
Aber da Du ja noch weitere Sachen in dem Batch machen willst, kannst Du ja auch mittels eines "Übergeordneten" das Prog. erst in dasQuellverz. kopieren.
Schönen Abend noch.
Micha

Antwort 30 von SnakeBite334

ich möchte ein script das folgendes macht. Es soll aber nicht vom gleichen ordner aufrufbar sein sondern als Verknüpfung vom Desktop.


ren c:\BildervonAPIS\facetoface\*.jbh *.jpg
move c:\BildervonAPIS\facetoface\*.jpg c:\Scan
start Auswahl
start Scan
start Lowres
start BildervonAPIS
start FTPVersand
start WinFR


Er soll die Ordner "Auswahl, Scan, Lowres, BildervonAPIS, FTPVersand" und das Programm "WinFR" öffenen. (Die Ordner sowie die Das Programm liegt als Verknüpfung im Windwos Ordner)
Außerdem soll das script die dateiendung jbh in jpg ändern. und das was mir fehlt ist das er vor den Dateinamen "face" schreibt.
Die Datei sieht so aus: "00612897.jbh"
Sie soll aber nach dem Script so aussehen: "face00612897.jpg"

MFG und vielen dank

André

Antwort 31 von Arno_Nym

Fürs Umbenennen geht sowas:

for /f %i in (´dir /b C:\BildervonAPIS\facetoface\*.jbh´) do @ren %~fi face%~ni.jpg


Hinweis: Bei Verwendung in Batches muß man jeweils doppelte Prozentzeichen bei den Variablen verwenden.

Arno

Antwort 32 von SnakeBite334

Habe das jetzt so aber er macht garnichts!? wodran kann das liegen!?

for /f %%i in (´dir /b C:\BildervonAPIS\facetoface\*.jbh´) do @ren %%~fi face%%~ni.jpg


Vielen Dank

Antwort 33 von Arno_Nym

Man kann das Umbenennen und Moven aber auch in einem Aufwasch erledigen:

for /f %i in (´dir /b :\BildervonAPIS\facetoface\*.jbh´) do @move %~fi C:\Scan\face%~ni.jpg


Etwas aufpassen muß man bei Leerzeichen in Datei/Verzeichnisnamen. Da sind dann entsprechende Anführungszeichen nötig.

Arno

Antwort 34 von SnakeBite334

Er macht immer noch nix.... :-/

Antwort 35 von SnakeBite334

Es ist in einer Batch Datei...

Antwort 36 von Arno_Nym

Kann daran liegen, daß das Supportnet bestimmte Zeichen verfälscht (Ärgernis!)
Wenn du hier Codezeilen kopierst, mußt du aufpassen. Z.B. funktionieren Apostrophe dann nicht mehr.

Also in den Kommandozeilen die Hochkommata (Apostrophe) nochmal löschen und selbst eintippen.

Wichtig bei dem DIR-Befehl in den Klammern.

... (´dir ...

Arno

Antwort 37 von Arno_Nym

Und sei nicht so ungeduldig. Das nervt und demotiviert den Helfen-Wollenden :-(

Arno

Antwort 38 von Fanno

Besitzt der Ordner "facetoface" noch Unterordner deren Dateien auch umbenannt und verschoben werden sollen? Und soll "face" vor alle Dateien, oder nur die, die mit "00" beginnen geschrieben werden?
Und was meinst Du mit Öffnen von Ordnern? Daß der Inhalt in einem Explorerfenster angezeigt wird? Das geht so:

set shell=createobject("wscript.shell")
shell.run "c:\ordername"

Wie man ein Programm startet, hab ich ja schon gepostet. Wie der Aufruf des Programms "WinFR" lautet, kannst Du herausfinden, indem Du den Eintrag "Ziel" o.ä. in den Eigenschaften der Verknüpfung anzeigen läßt, mit der Du das Programm immer startest.

Aber ich denke, daß man mehrere Explorerfenster und ein Programm auch über eine BAT starten kann, oder?

Antwort 39 von SnakeBite334

Genau das geht mit einer BAT. Er soll nur die dateien die mit 00 anfangen ein face voranghängen. es gibt keine unterordner.

Antwort 40 von SnakeBite334

@ Arno_Nym
Nun geht es aber das Problem ist das es im gleichen Ordner liegen muss... geht das auch das die Batch datei auf dem desktop liegt!?
so ist das ein bischen blöde...


Vielen Vielen Dank

Antwort 41 von Fanno

Du kannst ja ne Verknüpfung zur Batch auf den Desktop legen.

Antwort 42 von SnakeBite334

ja aber dann ist die datei ja immer noch da im Ordner und wenn ich dann alle Dateien irgendwann mal makieren tue dann löscht/verschiebt er diese mit... auch wenn ich sie ausblende fragt xp nach... geht das nicht eleganter!?

Antwort 43 von Fanno

Mit Batchdateien kenn ich mich nicht so aus. Probier mal die BAT woanders hinzulegen und dann am Anfang mit "cd" in das Verzeichnis zu wechseln.

Antwort 44 von SnakeBite334

wo und wie genau ins verzeichnis wechseln!?

Antwort 45 von SnakeBite334

@Fanno
habe nun diese


d=array("c:\BildervonAPIS\facetoface") 
set fso=createobject("scripting.filesystemobject") 
for each dd in d 
 set o=fso.getfolder(dd) 
 set f=o.files 
 for each ff in f 
  if right(lcase(ff.name),4)=".jbh" then 
   fso.movefile ff,dd&"\"&left(ff.name,len(ff.name)-4)&".jpg" 
  end if 
 next 
next
dir="c:\BildervonAPIS\facetoface"
set fso=createobject("scripting.filesystemobject")
set o=fso.getfolder(dir)
set f=o.files
for each ff in f
 if left(ff.name,2)="00" then fso.movefile ff,dir&"\face"&ff.name
next
set shell=createobject("wscript.shell")
shell.run "c:\BildervonAPIS\facetoface"
set shell=createobject("wscript.shell")
shell.run "c:\Auswahl"
set shell=createobject("wscript.shell")
shell.run "c:\Scan"
set shell=createobject("wscript.shell")
shell.run "c:\Lowres"
set shell=createobject("wscript.shell")
shell.run "C:\WINDOWS\FTPVersand"
set shell=createobject("wscript.shell")
shell.run "C:\WINDOWS\WinFR"
wscript.quit


Wie bewege ich nun noch die umbennanten Bilder von "c:\BildervonAPIS\facetoface" nach "c:\Scan"?!

Antwort 46 von Fanno

Am Anfang ist immer das Verzeichnis in der die BAT startet aktuell. Aber man kann doch während der Abarbeitung einer BAT-Datei mit "cd" das aktuelle Verzeichnis wechseln, wie man lustig ist, oder? Probier das doch mal als ersten Befehl in der BAT.

Antwort 47 von SnakeBite334

mit dem cd klappt super... vielen dank. aber kannst mir bei deinem script noch mal helfen!?

Wie bewege ich nun noch die umbennanten Bilder von "c:\BildervonAPIS\facetoface" nach "c:\Scan"?!


VIELEN DANK

Antwort 48 von Fanno

Öhm, ich dachte Du hättest jetzt ne BAT-Datei? Ich wußte nicht, daß Du noch ein VB-Skript benutzt.
Warum das Skript nur im gleichen Verzeichnis funzt ist mir schleierhaft. Alle Pfade sind doch absolut angegeben. Bist Du sicher, daß dem so ist? Ich habe bei den Tests der hier geposteten Skripte, das Skript nie im Ordner der Bilddateien gehabt.

Verschieben in ein anderes Verzeichnis am besten in einer neuen Schleife:

set o=fso.getfolder("c:\BildervonAPIS\facetoface")
set f=o.files
for each ff in f
 fso.movefile ff,"c:\Scan\"&ff.name
next



PS:
Objekte wie fso und shell mußt Du nur einmal erstellen und kannst dann immer wieder drauf zugreifen.

Antwort 49 von SnakeBite334

Bei dem vbs script von dir muss die datei nicht im gleichen Ordner sein... vielen dank werde ich gleich mal testen....

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: