Befehl umbenennen cmd Platzhalterproblem


0

Ich habe Dateien wie

test_abc.html
haha_test_someword.js
haha_morehaha_test_continue_test.someextension

Ich möchte alle Tests in einem bestimmten Ordner auf rekursive Weise durch Tommy ersetzen. Die Ausgabe würde also lauten:

 tommy_abc.html
    haha_tommy_someword.js
    haha_morehaha_tommy_continue_tommy.someextension

Ist dies in der Windows-Eingabeaufforderung mit dem Befehl ren möglich?

Antworten:


1

Ich glaube nicht, dass der renBefehl das kann, was Sie wollen, sondern ein Batch-Skript, das das renkann.

Ich habe gestern eine sehr ähnliche Frage zu Stack Overflow beantwortet . Hier ist eine modifizierte Version dieses Batch-Skripts, um Ihr Problem zu lösen. Es wird mit mehreren Ersetzungen in einem einzelnen Dateinamen fertig:

setlocal ENABLEDELAYEDEXPANSION
set SEARCH_TEXT=test
set REPLACE_TEXT=tommy
for %%A in ("*%SEARCH_TEXT%*") do (
    set OLD_NAME=%%~nxA
    set NEW_NAME=!OLD_NAME:%SEARCH_TEXT%=%REPLACE_TEXT%!
    ren "!OLD_NAME!" "!NEW_NAME!"
)
endlocal

Auch hier muss der SET /?Hilfetext des Befehls möglicherweise gelesen werden, um dies festzustellen.


Das ist ein schönes Skript!
123456789123456789123456789

1

Verwenden Sie eine for-Schleife zum rekursiven Umbenennen. Platzhalter für die Textsubstitution.

for /r %x in (*test*.*) do ren "%x" "*tommy*.*"

Tipp: Wenn das einmalige Ausführen des Befehls nicht alle "Tests" ersetzt, führen Sie den Befehl mehrmals aus oder verwenden Sie eine andere for-Schleife.

Verwendung von Platzhaltern in ren

Rekursiv ren


Ihre FORSchleife wird unter Win7.1 nicht richtig umbenannt. Hast du es versucht und es zum Laufen gebracht? Wenn ja, welche Windows-Version verwenden Sie bitte?
Wardies

Das geht nicht.
Tim Liberty

Fehler aufgrund möglicherweise gewesen sein , /Ranstatt /rauch *tommy*.* in Anführungszeichen hätte sein sollen. Probieren Sie es jetzt aus und prüfen Sie, ob es funktioniert (@wardies). Ich habe im Moment keinen Windows-PC, um dies zu testen.
Anant Prakash

0

Power Shell

gci "C:\files" | ren -n {$_.Name -replace 'test','tommy'}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.