67800
Goto Top

Automatische Dateiumbenennug aus eingabedatei?

Hallo,

ich habe eine txt file in der mehrere Dateipfade zu verschiedenen Dateien gespeichert sind zb.:

E:\Technik\Programme\brightmail\BAS_AV_551\BAS\Data1.cab
E:\Technik\Programme\HP_ThinClients\HP Automation\neu\T3492-15003\hpccm1.cab
usw.


Nun sollte ich es irgendwie schaffen automatisch diese Pfade auszulesen und an jede Datei "_defunct" anhängen, dass also alle Dateien physikalisch als

E:\Technik\Programme\brightmail\BAS_AV_551\BAS\Data1.cab_defunct
E:\Technik\Programme\HP_ThinClients\HP Automation\neu\T3492-15003\hpccm1.cab_defunct

vorhanden sind.

Hat da jemand eine Idee wie ich das unter Windows umsetzen kann? Mit der bash wärs ja kein problem face-smile

mfg

DooMRunneR

Content-Key: 92845

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

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: miniversum
miniversum 24.07.2008 um 14:37:30 Uhr
Goto Top
Angenommen die Liste steht in der datei "Name.txt" untereinander dann geht das an der Eingabeaufforderung so:
FOR /F "delims=" %i in (Name.txt) do ren "%i" "%~nxi_defunct"  
Mitglied: 67800
67800 24.07.2008 um 15:18:53 Uhr
Goto Top
Hat einwandfrei funktioniert, vielen dank.

Jetzt kommen jedoch noch Ordnernamen ala

E:\Technik\Admin\ntreskit40\

ebenfalls in einer .txt file.

Kann ich an diese Ordner auch ein _defunct dranhängen, der obere Befehl geht dort nicht, zu beachten ist hierbei auch das wirklich jeder Eintrag in dieser Liste mit Ordnern mit "\" endet.

mfg

DooMRunneR
Mitglied: miniversum
miniversum 24.07.2008 um 18:36:04 Uhr
Goto Top
Da würd ichs dann in ner Batch Datei so versuchen (ungetestet):
@echo off
FOR /F "delims=" %%i in (Name.txt) do call:doRename "%%i"  
goto:eof

:doRename
set "name=%~1"  
if %name:~-1% equ "\" (  
set "name=%name:~-1%"  
set "newname=%name:~-1%_defunct"  
) else (
set "newname=%~nx1_defunct"  
)
ren "%name%" "%newname%"  
goto:eof
Mitglied: bastla
bastla 24.07.2008 um 19:00:48 Uhr
Goto Top
Hallo DooMRunnerR und miniversum!

Eine etwas angepasste Version:
@echo off & setlocal
FOR /F "delims=" %%i in (Name.txt) do call:doRename "%%i"  
goto:eof

:doRename
set "name=%~1"  
if "%name:~-1%" equ "\" set "name=%name:~,-1%"  
for /f "delims=" %%a in ("%name%") do set "newname=%%~nxa_defunct"  
ren "%~1" "%newname%"  
goto:eof
Grüße
bastla