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?

Tim Liberty
quelle

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.

Wardies
quelle
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

Anant Prakash
quelle
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'}
Wurzel
quelle