[Solved] Dateien zusammenführen: Unterordner auflösen.

German support forum

Moderators: white, Hacker, Stefan2

pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

[Solved] Dateien zusammenführen: Unterordner auflösen.

Post by *pgomes »

hallo

gibt es eine einfachere Methode um Unterordner aufzulösen und diesen Inhalt in den Ausgangsordner zu verschieben als:

Total Commander -> Befehle -> Kommandozeilenfenster öffnen > im cmd gebe ich

Code: Select all

"FOR /R %f IN (*) DO MOVE "%f" ."
ein und der rödelt vor sich hin die dateinen sind im ordner und die unterordner leer.

dann lösche ich die ordner von hand oder gebe

Code: Select all

"FOR /R %f IN (.) DO RD "%f""
ein.

gibt es eine 1-klick-Möglichkeit?

ich habe es mit einer batch versucht aber ich bekomme das mit der pfad übergabe nicht hin, der wechselt nicht das laufwerk. bei cd zeigt der zwar den richtigen pfad aber wenn er for /r geht der wieder zurück.

Code: Select all

cd %1
FOR /R %f IN (*) DO MOVE "%f" .
FOR /R %f IN (.) DO RD "%f"
diese änderung hat auch nix gebacht:

Code: Select all

set path=%1
cd %path%
FOR /R %f IN (*) DO MOVE "%f" .
FOR /R %f IN (.) DO RD "%f"
lg

pg
Last edited by pgomes on 2015-10-04, 19:50 UTC, edited 1 time in total.
User avatar
Dalai
Power Member
Power Member
Posts: 9364
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Benutze die Zweigansicht (Strg+B), markiere alle Dateien und verschiebe die Dateien (F6) in ein Zielverzeichnis. Fertig. OK, nicht ganz fertig, aber die nun leeren Verzeichnisse lassen sich ja einfach ermitteln und löschen.

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
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Dateien zusammenführen: Unterordner auflösen.

Post by *Stefan2 »

pgomes wrote: ich habe es mit einer batch versucht aber ich bekomme das mit der pfad übergabe nicht hin, der wechselt nicht das laufwerk.
Öffne mal eine DOS-Box und gebe 'cd /?' ein:
C:\Users\User>cd /?
Wechselt das Verzeichnis oder zeigt dessen Namen an.

CHDIR [/D] [Laufwerk:][Pfad]
CHDIR [..]
CD [/D] [Laufwerk:][Pfad]
CD [..]


Verwenden Sie die /D-Option, um zusätzlich zum Wechseln des Verzeichnisses
auch das aktuelle Laufwerk zu wechseln.


- - -
pgomes wrote:

Code: Select all

set path=%1
BTW: 'PATH' ist eine Systemvariable, welche man nicht, auch nicht temporär, verändern sollte.
In 'PATH' sind die Ordner aufgelisted, welche Standardmäßig nach ausführbaren Dateien durchsucht werden.
Öffne eine DOS-Box und gebe 'PATH' ein...

Verwende besser 'CWD' oder 'myPath' als Variablenname.



- - -


Du kannst deine Batch auch von einem TC-Button bzw. usercmd aus aufrufen,
und den aktuellen Ordner mittels der TC-Variable '%P' übergeben.

Dadurch hast du dein eigenes 'Purge'-Kommando erstellt,
welche du in Zukunft ganz einfach jederzeit aufrufen kannst.

Durch ein usercmd kannst du es auch per Tastaturkürzel aufrufen, oder auch in das TC-Menü einbauen.


 
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Post by *pgomes »

danke dafür


Code: Select all

CD /D %1
FOR /R "%f" IN (*) DO MOVE "%f" .
funktioniert lieder auch nicht
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1008
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Teste mal hiermit:

Code: Select all

CD /D %1
FOR /R %%f IN (*) DO MOVE "%%f" .
FOR /D /R %%f IN (*) DO RD "%%f"
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Post by *pgomes »

:mrgreen: :mrgreen: ja yes yes danke ZoSTeR es funktioniert :!:
ZoSTeR wrote:Teste mal hiermit:

Code: Select all

CD /D %1
FOR /R %%f IN (*) DO MOVE "%%f" .
FOR /D /R %%f IN (*) DO RD "%%f"
:mrgreen:
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Choice

Post by *pgomes »

hallo

das script ging so gut das alles durcheinander war weil ich es nicht in der quelle angewendet habe sondern im ziel.

wie kann ich das per abfrage ändern. ich habe mir das mit choice gedacht. pause steht für das o.g. script.

Fehler ist das der der bei dem es egal ist was ich eingebe immer
if errorlevel 1 goto ja

pause
Drücken Sie eine beliebige Taste . . .
erscheint

Code: Select all

CHOICE /T 30 /C JNA /D N /M "Druecken Sie J fuer Ja, N fuer N ein oder A fuer Abbrechen."
if errorlevel 1 goto ja
if errorlevel 2 goto nein
if errorlevel 3 goto Abbrechen
:ja
pause
:nein
goto Abbrechen
:Abbrechen
exit
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Batchdatei Userabfrage

Post by *Stefan2 »

C:\Users\username>choice /?
...
......
HINWEIS:
Führen Sie die ERRORLEVEL-Parameter in absteigender Reihenfolge
auf, falls Sie diese in einem Batchprogramm verwenden.

Und nach einem Abschnitt musst du auch explizit Abbrechen oder wo anders hin springen, sonst macht der Interpreter einfach mit dem nächsten Abschnitt weiter.


 

Code: Select all

@ECHO OFF
CHOICE /T 30 /C JNA /D N /M "Druecken Sie J fuer Ja, N fuer N ein oder A fuer Abbrechen."
if errorlevel 3 goto Abbrechen
if errorlevel 2 goto nein
if errorlevel 1 goto ja

:ja
ECHO Hier ist JA
pause
goto :EOF (Springe ans Ende)

:nein
ECHO Hier waren wir kurz bei NEIN
PAUSE
goto Abbrechen

:Abbrechen
Am Skriptende ist automatisch Schluss.


Hier ist noch ein anderer Ansatz:

 

Code: Select all

@ECHO OFF
:START
ECHO. & ECHO.
SET /P Frage=Druecken Sie J fuer Ja, N fuer N ein oder A fuer Abbrechen:
If /I %Frage%==J GoTo _J
If /I %Frage%==N GoTo _N
If /I %Frage%==A GoTo :EOF (Am Skriptende ist automatisch Schluss)
ECHO Versuche es noch einmal... & GOTO:START

:_J
ECHO Hier ist JA!   & PAUSE
GOTO :EOF

:_N
ECHO Hier ist NEIN. & PAUSE

Am Skriptende ist automatisch Schluss.


 
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Post by *pgomes »

hallo danke für die Informationen

ich habe mir das noch mal weiter angepasst.

Code: Select all

@ECHO OFF
COLOR 4F
echo Auflösen aller Unterordner von %CD%\ ?
CHOICE /T 30 /C JNA /D A /M "Drücken Sie J für Ja, N für Nein ein oder A für Abbrechen oder 30 Sekunden warten (Autoabbruch)"
if errorlevel 3 goto Abbrechen
if errorlevel 2 goto nein
if errorlevel 1 goto ja

:ja
ECHO Hier ist JA
timeout 30
goto :EOF (Springe ans Ende)

:nein
ECHO Hier waren wir kurz bei NEIN & COLOR 2F
timeout 30
goto :EOF

:Abbrechen
ECHO Programm wird abgebrochen & COLOR 2F & timeout 30
Aufl÷sen aller Unterordner von e:\OO\BB\ ?
Dr³cken Sie J f³r Ja, N f³r Nein ein oder A f³r Abbrechen oder 30 Sekunden warten (Autoabbruch) [J,N,A]?
wie kriege ich diese DOS-Umlaute. Früher habe ich die Batch noch mal im EDIT.COM geöffnet und dann die ö ü ä eingetippt.[/code]
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Post by *pgomes »

User avatar
ZoSTeR
Power Member
Power Member
Posts: 1008
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Batch als ANSI speichern und auf Codepage 1252 wechseln.

Code: Select all

chcp 1252
Echo öäü
pause
oder als UTF-8 auf Codepage 65001
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Post by *pgomes »

danke danke für die antworten. :D :D :D
pgomes
Junior Member
Junior Member
Posts: 39
Joined: 2009-12-20, 16:39 UTC

Re: [Solved] Dateien zusammenführen: Unterordner auflösen.

Post by *pgomes »

Hallo!

Soweit läuft die Batchdatei nur habe ich festgestellt, das doppelte Dateinamen überschrieben werden. Das ist extrem blöd. Kann das irgendwie umgangen werden.

grüße
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: [Solved] Dateien zusammenführen: Unterordner auflösen.

Post by *Stefan2 »

2pgomes
Von welcher Batchdatei redest du?
Poste mal deine verwendete Batch, dann kann die jemand anpassen.


 
Post Reply