Mehrfach-Umbenennung Dateien kopieren/verschieben

German support forum

Moderators: Hacker, Stefan2, white

User avatar
Dalai
Power Member
Power Member
Posts: 10007
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Hast du in der Datei move.txt den kompletten Pfad stehen?

Bei mir funktioniert folgendes:
move.txt

Code: Select all

c:\a
Inhalt von C:\a

Code: Select all

datei_a
datei_b
datei_c
Ergebnis nach dem Ausführen des Skripts:
C:\a ist leer, C:\ziel enthält:

Code: Select all

a.1
a.2
a.3
Das soll doch so sein, oder hab ich was falsch verstanden?

StatusQuo wrote:...und möglichst im ASCII- (DOS-) Zeichensatz speichern, damit auch Umlaute fehlerfrei verarbeitet werden.
Bei Bedarf kann ich das Standardgerüst drumherum bauen, mit dem die Dateiliste auch im Windows-Zeichensatz verarbeitet wird.
Ja, richtig. So weit hab ich noch nicht gedacht. Ich wollte erstmal ein funktionierendes Skript erzeugen ;)

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

ifox68 wrote:irgend etwas läuft schief. die Dateien werden in das richtige Verzeichnis verschoben, aber diese lauten z.B. .1, .10, etc.
Nach Kopieren aus TC haben die Verzeichnisnamen vermutlich einen Backslash (\) am Ende, richtig?
Falls ja, muss vermutlich entweder der Backslash bei den Verzeichnisnamen weg oder die Batch etwas angepasst werden (ungetestet)...
Last edited by StatusQuo on 2008-04-07, 23:35 UTC, edited 1 time in total.
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

In der move.txt steht
c:\briefe\1020\

gruß
ifox68
StatusQuo
Power Member
Power Member
Posts: 1524
Joined: 2007-01-17, 21:36 UTC
Location: Germany

Post by *StatusQuo »

ifox68 wrote:In der move.txt steht
c:\briefe\1020\
Funktioniert's mit Inhalt

Code: Select all

c:\briefe\1020
?

P.S.:
So sollte es auch funktionieren (angehängter Punkt), das lässt sich aus TC z.B. mit MakeBat-Plugin erzeugen:

Code: Select all

c:\briefe\1020\.
Who the hell is General Failure, and why is he reading my disk?
-- TC starter menu: Fast yet descriptive command access!
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

wenn ich den backslash am ende rausnehme funktioniert es. nun habe ich bemerkt, dass er die Dateiendung hochzählt. wäre es möglich, die Dateiendung pro Verzeichnis immer wieder bei 1 beginnen zu lassen?

gruß
ifox68
User avatar
Dalai
Power Member
Power Member
Posts: 10007
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ifox68 wrote:wenn ich den backslash am ende rausnehme funktioniert es
Je nachdem, ob du die Backslashes entfernen möchtest oder nicht, kannst du die Batch anpassen. Hier die Variante, die mit Backslash zurechtkommt.

Code: Select all

ren "%%J.\%%A" "%%~nxJ.!num!" > NUL
        echo    Verschieben
        move "%%J.\%%~nxJ.!num!" "%target%" > NUL
EDIT: Das funktioniert nicht, weil %%~nxJ immer leer ist! Also müssen (im Moment) die Verzeichnisse ohne Backslash gespeichert werden. Ich schau mal, ob ich eine Lösung finde.
ifox68 wrote:wäre es möglich, die Dateiendung pro Verzeichnis immer wieder bei 1 beginnen zu lassen?
Klar. Änder die erste for-Schleife wie folgt:

Code: Select all

for /F "tokens=*" %%J IN (move.txt) DO (
    set num=1
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

den backslash muss ich aber trotzdem rausnehmen, sonst funktioniert es nicht.

gruß
ifox68
User avatar
Dalai
Power Member
Power Member
Posts: 10007
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ifox68 wrote:den backslash muss ich aber trotzdem rausnehmen, sonst funktioniert es nicht.

gruß
ifox68
Mit dieser Variante funktioniert es mit und ohne Backslash. Kann sogar von Verzeichnis zu Verzeichnis unterschiedlich sein.

Code: Select all

@echo off

setlocal ENABLEDELAYEDEXPANSION

set target=C:\ziel
set path_file=move.txt
set num=1

echo.
set /p answer=Forfahren mit Umbenennen und Verschieben von Dateien in "%path_file%" nach "%target%" ^(j/n^)? 
if /i "%answer%"=="j" goto DO_IT
goto :EOF

:DO_IT
if not exist "%target%" md "%target%" > NUL

for /F "tokens=*" %%J IN (%path_file%) DO (
    set num=1
    for /F "tokens=*" %%A IN ('dir /b /a-d /ogn "%%J"') DO (
        echo.
        set verz=%%~npJ
        set file=%%A 
        if "%%~nxJ"=="" (
           REM echo mit Backslash
           REM   Alle Zeichen, ohne das erste und das letzte (sind Backslashes) in dieselbe Variable kopieren
           set verz=!verz:~1,-1!
           set b_slash=
        ) ELSE (
          REM echo ohne Backslash
          REM   Alle Zeichen, ohne das erste (ist ein Backslash) in dieselbe Variable kopieren
          set verz=!verz:~1!
          set b_slash=\
        )
        echo !num!
        echo    Umbenennen^:    !file! --^> !verz!.!num!
        ren "%%~J!b_slash!!file!" "!verz!.!num!" > NUL
        echo    Verschieben^:   !verz!.!num!
        move "%%~J!b_slash!!verz!.!num!" "%target%" > NUL
        set /a num=!num!+1
    )
)

endlocal
Mphf, das Forum bricht den Code um, daher hier nochmal als UUE (decodieren im TC mit Dateien -> Datei decodieren):

Code: Select all

begin 644 rename_and_move.cmd
M0&5C:&\@;V9F#0H-"G-E=&QO8V%L($5.04),141%3$%9141%6%!!3E-)3TX-
M"@T*<V5T('1A<F=E=#U#.EQZ:65L#0IS970@<&%T:%]F:6QE/6UO=F4N='AT
M#0IS970@;G5M/3$-"@T*96-H;RX-"G-E="`O<"!A;G-W97(]1F]R9F%H<F5N
M(&UI="!5;6)E;F5N;F5N('5N9"!697)S8VAI96)E;B!V;VX@1&%T96EE;B!I
M;B`B)7!A=&A?9FEL924B(&YA8V@@(B5T87)G970E(B!>*&HO;EXI/R`-"FEF
M("]I("(E86YS=V5R)2(]/2)J(B!G;W1O($1/7TE4#0IG;W1O(#I%3T8-"@T*
M.D1/7TE4#0II9B!N;W0@97AI<W0@(B5T87)G970E(B!M9"`B)71A<F=E="4B
M(#X@3E5,#0H-"F9O<B`O1B`B=&]K96YS/2HB("4E2B!)3B`H)7!A=&A?9FEL
M924I($1/("@-"B`@("!S970@;G5M/3$-"B`@("!F;W(@+T8@(G1O:V5N<STJ
M(B`E)4$@24X@*"=D:7(@+V(@+V$M9"`O;V=N("(E)4HB)RD@1$\@*`T*("`@
M("`@("!E8VAO+@T*("`@("`@("!S970@=F5R>CTE)7YN<$H-"B`@("`@("`@
M<V5T(&9I;&4])25!(`T*("`@("`@("!I9B`B)25^;GA*(CT](B(@*`T*("`@
M("`@("`@("!214T@96-H;R!M:70@0F%C:W-L87-H#0H@("`@("`@("`@(%)%
M32`@($%L;&4@6F5I8VAE;BP@;VAN92!D87,@97)S=&4@=6YD(&1A<R!L971Z
M=&4@*'-I;F0@0F%C:W-L87-H97,I(&EN(&1I97-E;&)E(%9A<FEA8FQE(&MO
M<&EE<F5N#0H@("`@("`@("`@('-E="!V97)Z/2%V97)Z.GXQ+"TQ(0T*("`@
M("`@("`@("!S970@8E]S;&%S:#T-"B`@("`@("`@*2!%3%-%("@-"B`@("`@
M("`@("!214T@96-H;R!O:&YE($)A8VMS;&%S:`T*("`@("`@("`@(%)%32`@
M($%L;&4@6F5I8VAE;BP@;VAN92!D87,@97)S=&4@*&ES="!E:6X@0F%C:W-L
M87-H*2!I;B!D:65S96QB92!687)I86)L92!K;W!I97)E;@T*("`@("`@("`@
M('-E="!V97)Z/2%V97)Z.GXQ(0T*("`@("`@("`@('-E="!B7W-L87-H/5P-
M"B`@("`@("`@*0T*("`@("`@("!E8VAO("%N=6TA#0H@("`@("`@(&5C:&\@
M("`@56UB96YE;FYE;EXZ("`@("%F:6QE(2`M+5X^("%V97)Z(2XA;G5M(0T*
M("`@("`@("!R96X@(B4E?DHA8E]S;&%S:"$A9FEL92$B("(A=F5R>B$N(6YU
M;2$B(#X@3E5,#0H@("`@("`@(&5C:&\@("`@5F5R<V-H:65B96Y>.B`@("%V
M97)Z(2XA;G5M(0T*("`@("`@("!M;W9E("(E)7Y*(6)?<VQA<V@A(79E<GHA
M+B%N=6TA(B`B)71A<F=E="5<(B`^($Y53`T*("`@("`@("!S970@+V$@;G5M
@/2%N=6TA*S$-"B`@("`I#0HI#0H-"F5N9&QO8V%L#0H`
`
end
sum -r/size 13393/1247
Hab's auch noch ein bisschen aufgebohrt mit Abfrage am Anfang und die Ausgaben etwas genauer. Fehler, Kritik, aber auch Lob sind willkommen ;)

MfG Dalai
Last edited by Dalai on 2008-04-08, 14:36 UTC, edited 1 time in total.
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

Es kommt immer noch ein Syntaxfehler beim Umbenennen.

gruß
ifox68
User avatar
Dalai
Power Member
Power Member
Posts: 10007
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ifox68 wrote:Es kommt immer noch ein Syntaxfehler beim Umbenennen.
Hast du irgendwelche Besonderheiten wie Leerzeichen im Datei- und/oder Verzeichnisnamen?
Sind die Pfade in der move.txt mit oder ohne abschließenden Backslash gespeichert (sollte zwar jetzt beides funktionieren, aber man weiß ja nie...)?

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

Es sind weder Besonderheiten noch Leerzeichen im Datei-/Verzeichnisnamen vorhanden. Die Pfadangaben in der Move.txt sind mit abschließenden Backslash

Gruß
ifox68
User avatar
Dalai
Power Member
Power Member
Posts: 10007
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

OK, oben im Post nochmal eine geänderte Version, die mit Leerzeichen zurechtkommt. Schau mal, ob die funktioniert. Wenn nicht, dann schick mir mal den Output; ich muss wissen, an welcher Stelle genau der Fehler auftritt.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

Was verstehst du als Output?
User avatar
Dalai
Power Member
Power Member
Posts: 10007
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ifox68 wrote:Was verstehst du als Output?
Die komplette Ausgabe der Batchdatei, inkl. vor allem der Fehlermeldung(en).

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
ifox68
Junior Member
Junior Member
Posts: 19
Joined: 2008-04-07, 21:06 UTC

Post by *ifox68 »

Wie kann ich z.B Screenshots schicken?
Post Reply