vbagast
Goto Top

Vbs oder batch zum Ändern von Dateinamen ab Zeichenkette

Guten Tag,

nach meinen bisherigen Recherchen wird das Problem mit Batch eher schwierig zu lösen sein. Daher würde auch vbs gehen.

Ich habe in einem Ordner diverse Dateien. Zum Beispiel.

Dateiname-xy-temps274738.pdf
Dateiname-neu-temps274738646.pdf
Dateiname-huhu-temps1373274738.pdf

Diese sollen automatisch umbenannt bzw. ab der x. stelle gelöscht werden. Sprich es soll dann nur

Dateiname-xy
Dateiname-neu
Dateiname-huhu

stehen bleiben.

Als "Anker" könnte also -temps* (also * für ...) dienen.

Hätte jemand hier eine Lösung parat? Müsste man im vbs eine Fehlerbehandlung einbauen, wenn durch das "Kürzen" z. B. ein Dateiname doppelt wäre und in der Folge überschrieben werden würde.

Habe immer nur Lösungen gefunden, die eine feste Länge (z. B. ab 13 Zeichen) berücksichtigen. Hier wäre es immer abhängig von der Dateinamenlänge vor dem "Anker".

Ein ähnliches Beispiel hatte ich hier gefunden, wo der Text zwischen "-" ersetzt wird: http://www.source-center.de/forum/showthread.php?69694-Brauche-VB-Scrip ...

Über eine entsprechende Rückmeldung würde ich mich freuen.

Content-Key: 339536

Url: https://administrator.de/contentid/339536

Printed on: April 25, 2024 at 08:04 o'clock

Mitglied: 114685
114685 Jun 01, 2017 updated at 11:22:44 (UTC)
Goto Top
Hi, willkiommen im Forum.

Wir haben hier eine sehr gut funktionierende Suchfunktion, umbenennen ist hier im Forum ein Dauerthema (für die falschen Schreibweisen haben wir sogar extra einen Counter). face-smile

Du musst also gar nicht in die Ferne schweifen.
Auch gute Tutorials findest du hier, wenn für dich Batch leichter werden soll:
Workshop Batch für Runaways Teil I mit Links zu Teil II und III


Gruß
Mitglied: 133417
133417 Jun 01, 2017 updated at 11:58:14 (UTC)
Goto Top
Powershell etwa so
gci 'C:\Ordner\*.pdf' | rename-item -NewName {"$(($_.Basename -split '-temps'))$($_.Extension)"} -EA Inquire  
Gruß
Member: vbaGast
vbaGast Jun 01, 2017 updated at 21:01:39 (UTC)
Goto Top
Hallo,

danke für die Begrüßung und den Hinweis. Leider habe ich eben für genau das Problem noch keine Lösung gefunden. Aber ich forste weiter.

Den Code mit gci kann meine vbs-Datei nicht verarbeiten. Sorry bin leider noch Laie in diesem Gebiet.
Mitglied: 114685
114685 Jun 01, 2017 updated at 11:48:26 (UTC)
Goto Top
Dann forste doch mal &search_sort= hier. Da ist bestimmt was dabei. face-wink

Sieh dir mal in der Konsole die Hilfen zu for und set an:
for /? oder help for 
set /? oder help set

Bei for tokens und delims beachten und für set wird erklärt, wie man Teile einer Stringvariable zerpflücken kann.

Gruß
Mitglied: 114685
114685 Jun 01, 2017 updated at 11:54:12 (UTC)
Goto Top
Hi,
@vollidiot:

Kunde: "Guten Tage, ich benötige Mehl oder Zucker".
Verkäufer: "Salz ist heute günstig im Angebot. Warum nehmen Sie nicht Salz?".

Fällt dir was auf?

Gruß
Mitglied: 133417
133417 Jun 01, 2017 updated at 11:52:48 (UTC)
Goto Top
Zitat von @vbaGast:
Den Code mit gci kann meine vbs-Datei nicht verarbeiten. Sorry bin leider noch Leihe in diesem Gebiet.
Wozu schreibe ich wohl Powershell drüber ...?!
Mitglied: 133417
133417 Jun 01, 2017 updated at 11:56:48 (UTC)
Goto Top
Zitat von @114685:
Kunde: "Guten Tage, ich benötige Mehl und Zucker".
Verkäufer: "Salz ist heute günstig im Angebot".
Blöder Vergleich, der Code führt ja zum gewünschten Ergebnis face-smile, das Mittel der Wahl ist da egal.
Es gibt für alles modernere Tools die sich besser für sowas eignen face-smile. Da jetzt für so eine simple Aufgabe 20 Zeilen Code schreiben muss ja nicht sein wenns auch so geht. Zumal in Windows die PS ja schon drin ist.

Naja muss jeder selber wissen...
Mitglied: 114685
114685 Jun 01, 2017 updated at 11:58:32 (UTC)
Goto Top
Klar gibt's die. Die benötigen dann 1. Die korrekte Powershell-Version und so ca. 1 GB Net-Framework Gelumpe auf der Platte und funktioniert nicht gleich auf allen Windows-Versionen.
.
Mitglied: 133417
133417 Jun 01, 2017 updated at 11:59:27 (UTC)
Goto Top
nicht gleich auf allen Windows-Versionenj.
Doch, seit Vista schon lange per Default mit dabei! Wer noch XP nutzt ist selbst schuld.
Mitglied: 114685
114685 Jun 01, 2017 updated at 12:00:13 (UTC)
Goto Top
Erzähl's deiner Großmutter. Wenn jemand nach einer bestimmten Lösung fragt, möchte er auch sicher Anworten dazu haben. Ist dein Nick Programm?
Mitglied: 133417
133417 Jun 01, 2017 updated at 12:03:06 (UTC)
Goto Top
Zitat von @114685:
Erzähl's deiner Großmutter.
Nö, das was ich sage stimmt.

Ich bringe hier wenigstens etwas Input, du leider nichts.
Member: vbaGast
vbaGast Jun 01, 2017 updated at 12:18:12 (UTC)
Goto Top
Hallo,

ich wollte hier nichts Schlimmeres lostreten...

Hier bin ich fündig geworden. Dateinamen umbenennen Namensteil suchen und ersetzen, bzw. ab Fundort den Rest löschen

Danke für die Hinweise!
Member: Biber
Biber Jun 01, 2017 at 18:02:02 (UTC)
Goto Top
[OT]
Moin vbaGast,


Zitat von @vbaGast:

ich wollte hier nichts Schlimmeres lostreten...

Na ja, da kannst du ja eher wenig dafür ... eigentlich hast du schon ziemlich genau geschrieben, wo du losläufst und wo du ankommen willst. Für diese Zucker, Mehl, Salz und Omma-Kommentare kamen die Steilvorlagen ja nicht von dir.

Ich war ja nur froh, dass keiner auf deinen Satz " Sorry bin leider noch Leihe in diesem Gebiet." eingestiegen ist.

An schwülen Tagen oder kurz vor dem Wochenende kommen auf so etwas dann gleich Retourkutschen wie
"Mach dir keine Sorgen - jeder kann seine Feeigkeiten verfollkommenen.."

Is' ja aber gatesseidank keiner so drauf gewesen heute.

@vollidiot: Dein Nickname verstösst IMHO eklatant gegen die ohnehin nicht immer guten Sitten in diesem Forum.
Für mich ist das eine Aktion, die nur und ausschliesslich als Einladung zur Anzettelung von Flamewars zielt.
Da ich von deinen bisherigen Kommentaren nicht davon ausgehen, dass du selbst oder jemand dich als Vollidiot ansehen muss:
BITTE ändere deinen Nicknamen in etwas weniger Anstössiges.

Aber bitte nicht in "Vollhonk" oder "Halbidiot" oder irgendeine andere wortwörtliche Erfüllung meiner Bitte, sondern so, wie es unter Erwachsenen erwartet werden kann.
Danke

Biber
[/OT]