Jump to content

Benötige Hilfe zum CMD-Befehl "for"


Recommended Posts

Hallo liebe Profis,

 

ich habe leider nicht viel Ahnung von CMD-Befehlen und brauch deshalb Eure Hilfe.

Ich habe in meinem Windows Ordner C:\Mailarchiv folgende Dateien:

 

Test20200102-Email1.msg

Test20200103-Email2.msg

Test20200104-Email3.msg

Test20200105-Email4.msg

usw.....

 

Ich möchte nun mit einer for-Schleife bei jeder Datei die Zeichenfolge "Test" löschen, also die ersten vier Zeichen.

Kann mir jemand den vollständigen CMD-Befehl dafür liefern?

 

Herzlichen Dank!

 

Link to post

Wenn auch PowerShell erlaubt ist ...

Get-ChildItem -Path C:\Mailarchiv -Filter Test*.msg |
    ForEach-Object {
    Rename-Item -Path $_.FullName -NewName ($_.Name -replace 'Test')
    }

 

Wenn das ne einmalige Aktion ist ... für sowas gibt es auch Tools ... z.B. der FreeCommander kann sowas oder PowerRename aus den Microsoft-PowerToys

Link to post

Danke BOfH_666,

PowerShell hat funktioniert! :-):thumb1:

Andere Tools darf ich wegen Firmenrechner leider nicht nutzen. Wobei MS PowerToys durchaus möglich sein sollte.

 

Wär schön, wenn mir trotzdem noch jemand den alten DOS Befehl "for" liefern kann.

 

Dankeschön.

Link to post
vor 5 Minuten schrieb Stefan72:

Wär schön, wenn mir trotzdem noch jemand den alten DOS Befehl "for" liefern kann.

 

Nur aus Neugier ... warum? 

 

vor 7 Minuten schrieb Stefan72:

PowerShell hat funktioniert! :-):thumb1:

 

Link to post

Ganz einfach:

 

Hab mal vor Jahren den FOR Befehl genutzt und hab mir das sogar auf einen Zettel geschrieben. Ich glaube ich habe damit irgendwelche pdf-Dateien umbenannt.

 

Auf dem Zettel steht: FOR %I IN (*.pdf) DO ren "%I" "1700%~nxI

 

Und da ich Laie bin hätte mich halt interessiert, ob ich diesen FOR Befehl auch für mein aktuelles Problem irgendwie in abgeänderter Form nehmen kann - dann würde ich den Befehl vielleicht sogar verstehen.

 

Link to post

Moin,

 

vor 25 Minuten schrieb Stefan72:

Wär schön, wenn mir trotzdem noch jemand den alten DOS Befehl "for" liefern kann.

sorry, aber "liefern" tun wir hier gar nix. Und da so eine Aufgabe mit FOR unglaublich umständlich ist, hätte zumindest ich auch keine Motivation, damit anzufangen, weil das Problem ja nun schon viel besser gelöst ist.

 

Wenn es irgendeinen Grund gibt, das mit FOR zu machen, findest du dazu einiges im Web. Das müsste jeder von uns aber auch raussuchen - und ab da siehe oben.

 

Gruß, Nils

PS. und als kleiner Sonderservice: FOR /? hilft dir bei deiner Zeile vermutlich auch.

Edited by NilsK
Link to post

Sorry Nils für das Wort "liefern". War keine böse Absicht.

Um nicht noch weiteren Ärger zu kriegen, nehme ich hiermit meinen Wunsch wegen dem DOS Befehl "FOR" zurück.

 

Danke nochmal BOfH_666 für den PowerShell Befehl und den Tool Tipps.

  • Like 1
Link to post

@Stefan72 Alles gut, ich denke, hier war einfach die Wortwahl etwas unglücklich.
Zwei Dinge, um Dir zu erklären, was unser Ansatz ist: 1) Wir helfen gerne und stetig, dabei ist uns aber wichtig, dass wir helfen "geistig auf's Rad zu steigen" - fahren muss aber jeder selbst. Das ist der einzig sinnvolle Ansatz, um nachhaltig zu helfen. Schließlich soll der Fragesteller auch verstanden haben, was die Lösung des Problems ist.
2) Nehmt PowerShell statt CMD, das ist einfach modern und inzwischen auch schon wieder 15 Jahre alt. Keine Berührungsängste, wie Du siehst, wurde Dir damit schnell geholfen. Wenn Du Dir die Zeilen oben von Bofh_666 ansiehst, ist es auch wirklich einfach zu lesen...

 

Ansonsten: Willkommen an Board ;-)

 

  • Thanks 1
Link to post
Am 25.5.2021 um 10:48 schrieb Stefan72:

Auf dem Zettel steht: FOR %I IN (*.pdf) DO ren "%I" "1700%~nxI

 

"for /?" wäre mal ein Anfang - bei for ist die integrierte Hilfe tatsächlich recht hilfreich (wie auch bei set übrigens) :-) Mit Deinem Zettel-Befehl wird ein Präfix "1700" ergänzt, das geht noch relativ einfach. %~ greift auf Dateinamensbestandteile zu - dpnx für Drive, Path, Name, Extension. Einen Bestandteil damit "rauszuwerfen" ist schwieriger, geht aber auch mit "set" und DelayedExpansion. Aber glaub mir - Powershell ist dafür (und für vieles andere) weit besser geeignet.

Link to post

Hi daabm,

besten Dank für Deine Erklärungen, damit verstehe ich das, was auf meinem Zettel stand, schon etwas besser. Mir ist jetzt dadurch wieder eingefallen, dass ich damals tatsächlich große Mengen an Dateinamen mit 1700... ergänzt habe.

Bezüglich meines aktuellen Problems hab mich schon überzeugen lassen, PowerShell zu benutzen. Ich versuchs trotzdem auch weiter mit FOR. Mal schauen, wie weit ich komme.

VG

 

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...