2Danke
ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
1720
1720
EMPFEHLEN
-
Habe folgende Dateien, nach diesem Muster:
"sapnote.htm@numm=1320881&vers=0000000000&language=D&sap-language=D"
Dies Dateien sollen per Batch umbenannt werden, wie folgt:
1. Diesen String entfernen: sapnote.htm@numm= (also bis zur Nummer)
2. Diesen String entfernen: &vers=0000000000&language=D&sap-language=D (praktisch alles ab dem &
3. als Dateiendung noch pdf anhängen
Fertig, das Endergebnis sollte dann so aussehen: hinweis_1320881.pdf
Kann man dies realisieren!? Habe ähnliches schon mal mit "SED" gemacht, aber dies in Texten. Um das mit Dateien zu machen, habe ich schon leider vergeblich versucht
Suche also ein Tool, mit dem ich komplette String ersetzen kann, ich such kein Tool das mit Gui arbeitet.
mfgGeändert von rkrause (26.11.09 um 14:48 Uhr)
-
26.11.09 15:07 #2
Moin,
wie Du die Umbennung per Batch hin bekommst kann ich so aus dem Stand leider nicht sagen ... aber ein kurzer Hinweis:
ist Dir bewusst, dass durch das Umbenennen auf ".pdf" aus Deiner Datei nicht automatisch auch ein PDF-Dokument wird?
Dafür müsstest Du konvertieren
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
das Dokument ist ein PDF-Dokument

In Verbindung mit Wget und einem Massendownload entstehen leider diese Cryptischen Dateien. Möchte nun einfach ein Batchscript nutzen mit dem ich das per Klick umbenenne und gut für andere Zwecke brauchen könnte.
Mit Gui-Tools bzw den Totalcommander würde ich das schon mit wenigen Schritten lösen können, suche wie gesagt ein Batchvariante, wenn möglich mit kleinen Tools wie z.B "Sed" aus dem Linuxbereich oder so.
-
26.11.09 15:20 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Muss es denn unbedingt ein Batch Skript sein? Kannst du nicht was anderes installieren? (eine Bash?)
GrußCode :1
for /f "tokens=3 delims=&@=" %%a in ("sapnote.htm@numm=1320881&vers=0000000000&language=D&sap-language=D") do set num=%%aIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Versteh leider die Frage jetzt nicht ganz
Eine Bash würde ich eher Linux bzw Unix zuordenen, bin aber ein leidenschaftlicher Windows-User.
Mache auch schon relativ viel mit Batches und suche mir die entprechenden "Dostools" oder Linuxportierungen zusammen. Schaue mir mal kurz den den Code an, ob ich damit soweit klar komme, da ich For-Schelifen auch hin und wieder verwende.
EDIT: ok, aus den Code könnte ich mir schonmal was zurechtschnitzen. Nur noch ein Loop über alle Dateien einbauen. Danke
Geändert von rkrause (26.11.09 um 15:33 Uhr)
-
26.11.09 15:40 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
aso, extra dafür ein Bash zu installieren, halte ich für unnötig, da ich Batches per USB-Stick hin und wieder auch auf anderen System nutzen möchte.
Gibs den Linuxbefehle die bequem String aus Dateien erkennen und ersetzen können, da ich auch unter anderem Linuxbefehle (Portierung für Win32) auch schon unter Windows nutze; zb Sed oder grep?
-
26.11.09 15:58 #8
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Ja, mit sed:
GrußCode :1
echo "sapnote.htm@numm=1320881&vers=0000000000&language=D&sap-language=D" | sed -e <pattern>
PS: Du könntest auch mmv (http://ring.u-toyama.ac.jp/archives/...2/release/mmv/) benutzen (siehe http://linux.die.net/man/1/mmv)Geändert von deepthroat (26.11.09 um 16:12 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
@echo off rem Config set source_list=_test.txt set suchkriterium=sapnote :start rem datei auf aktuellem stand bringen (durch löschen der datei) if exist "%source_list%" del %source_list% rem bestimmte dateien per suchkriterium einlesen und in datei stellen dir /b "*.*" |find "%suchkriterium%" >>%source_list% :scan_files set source_file= for /f "delims=" %%i in ('type "%source_list%"') do set source_file=%%i if "%source_file%"=="" goto exit for /f "tokens=3 delims=&@=" %%a in ("%source_file%") do set num=%%a :rename_file ren "%source_file%" hinweis_%num%.pdf goto start :exit rem irgendwas machen exit
Batch ist fertig und läuft erstmal
Feil da irgendwann mal ein bischen rum.
Vorschläge was man noch verbessern könnte!?
Danke für die hilfreichen Tipps
-
27.11.09 13:22 #10
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Was ich auf jeden Fall versuchen würde zu vermeiden, ist irgendwelche Dateien anzulegen.
Und warum generierst du die Dateiliste bei jedem Durchlauf nochmal neu?
GrußCode :1 2 3
for %%i in (*sapnote.htm*) do ( for /f "tokens=3 delims=&@=" %%a in ("%%i") do ren "%%i" hinweis_%%a.pdf )Geändert von deepthroat (27.11.09 um 13:27 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Danke, das ist natürlich die perfekte Lösung
Ähnliche Themen
-
[BATCH] Einzelne Datei suchen und umbenennen
Von Salomonis im Forum Sonstige SprachenAntworten: 16Letzter Beitrag: 24.02.09, 13:55 -
beliebig viele ordner mit batch erstellen und umbenennen ?
Von crazymischl im Forum Sonstige SprachenAntworten: 7Letzter Beitrag: 30.10.07, 18:34 -
[BATCH] Dateien umbenennen
Von Chebbes im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 30.04.05, 10:58 -
dateien umbenennen
Von jams99 im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 23.10.04, 15:38 -
Batch zum umbenennen
Von hämma im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 31.03.04, 07:49





Zitieren

Login





