Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordnerhierarchie auf eine Ebene reduzieren?

Frage Entwicklung Batch & Shell

Mitglied: the-NoMIs

the-NoMIs (Level 1) - Jetzt verbinden

24.06.2008, aktualisiert 25.06.2008, 4610 Aufrufe, 8 Kommentare

automatisierung mit batch oder software gesucht

lästige handarbeit, die immer wieder vorkommt: ein übergeordnetes verzeichnis enthält mehrere (teilweise verschachtelte) unterverzeichnisse in denen verschiedene dateien liegen, die man gerne ohne die ganze ordnerstruktur in einem verzeichnis hätte.


ordner
..unterordner1
.....datei1
.....datei2
..unterorder2
.....datei2
.....datei3
.....datei4



---> MIT MÖGLICHST EINEM KLICK UMWANDELN IN:



ordner
..datei1
..datei2
..datei2_2
..datei3
..datei4


hat jemand von euch eine bequeme lösung für dieses problem, die einem den ganzen ausschneiden-einfügen-prozess erspart? Idealerweise mit einer automatischen umbennung bei gleichem dateinamen oder nachfrage ob ersetzt werden soll..

vielen dank schon mal im voraus!

gruß simon
Mitglied: D3S3RT
24.06.2008 um 15:29 Uhr
also das Programm "total commander" ( http://www.ghisler.com/ddownload.htm ) hat den Shortcut Strg + b .. Damit werden alle Dateien aller Unterverzeichnisse in einer Liste dargestellt.
Wenn du nun dann mit Strg + NumPlus
markierst und mit Strg + x ausschneidest, mit Strg + r
die Ansicht wieder auf normal machst, und mit Strg + v
das ganze wieder einfügst. dann haste das schonmal. Doppelte Dateinamen machen hier leider Stress. Die müsstest du vorher ausschliessen. z.b. wenn du in der Ansicht, alle markiert hast mit Strg + m in das Umbenenntool reingehst. und dann als neuen Namen [P][N] einträgst, wird jede datei von pfad1\dateiname in pfad1\pfad1dateiname umbenannt, dann hättest du Dopplungen ausgeschlossen.
Bitte warten ..
Mitglied: bastla
24.06.2008 um 16:14 Uhr
Hallo the-NoMIs und willkommen im Forum!

Für den folgenden Batch benötigst Du etwas mehr als einen Klick - der Ausgangsordner ist nämlich auf den Batch zu ziehen (oder der Batch über CMD mit Angabe des Ordners als Parameter aufzurufen):
01.
@echo off & setlocal 
02.
if [%1]==[] goto :Usage 
03.
if not exist "%1\" goto :Usage 
04.
 
05.
pushd %1 
06.
for /d %%i in (*.*) do call :ProcessDir "%%i" 
07.
popd 
08.
goto :eof 
09.
 
10.
:ProcessDir 
11.
for /f "delims=" %%d in ('dir %1 /s /b /a-d 2^>nul') do call :ProcessFile "%%d" 
12.
dir %1 /s /b /a-d >nul 2>nul || rd /s /q %1 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set "N=%~nx1" 
17.
set Nr=1 
18.
:Loop 
19.
if not exist "%N%" goto :DoIt 
20.
set /a Nr+=1 
21.
set "N=%~n1_%Nr%%~x1" 
22.
goto :Loop 
23.
:DoIt 
24.
move %1 "%N%" 
25.
goto :eof 
26.
 
27.
:Usage 
28.
echo\ 
29.
echo\ 
30.
echo Bitte beim Aufruf einen existierenden Ordner angeben! 
31.
echo\ 
32.
pause
Nach dem Zusammenfassen der Dateien im angegebenen/übergebenen Ordner werden alle Unterordner, unterhalb dererer sich keine Dateien mehr befinden, gelöscht. Falls Du das nicht willst, einfach "::" an den Anfang der Zeile 12 setzen.

Bitte zunächst Testdaten verwenden!

Grüße
bastla
Bitte warten ..
Mitglied: the-NoMIs
24.06.2008 um 17:42 Uhr
geeeenial!

was soll ich sagen.. perfekt - DANKE!

gruß simon
Bitte warten ..
Mitglied: the-NoMIs
25.06.2008 um 12:48 Uhr
nach sehr zufriedenstellenden testläufen ist mir eine kleinigkeit aufgefallen, die noch zu meiner absoluten glückseeligkeit fehlen würde ;)

diese umbenennung wie sie D3S3RT erwähnt:

"...als neuen Namen [P][N] einträgst, wird jede datei von

pfad1\dateiname

in

pfad1\pfad1dateiname

umbenannt, dann hättest du Dopplungen ausgeschlossen."

könnte man die noch in den batch einbauen? damit würde man sich die "_2" bei gleichem dateinamen sparen und hätte den vorteil, dass die sortierung der datein nicht verloren ginge.
beispielsweise erstellt meine dslr automatisch neue ordner auf der speicherkarte und beginnt in jedem dieser ordner mit der durchnummerierung der fotos wieder bei 1. mit obigem batch geht mir somit leider die chronologische reihenfolge verloren, die ich zwar über die exif-daten wiederherstellen kann, aber das ist dann schon wieder mehr als ein klick ^^

vielen dank für die mühe!

gruß simon
Bitte warten ..
Mitglied: bastla
25.06.2008 um 16:23 Uhr
Hallo the-NoMIs!

Meinst Du so:
01.
@echo off & setlocal 
02.
if [%1]==[] goto :Usage 
03.
if not exist "%1\" goto :Usage 
04.
 
05.
pushd %1 
06.
for /d %%i in (*.*) do call :ProcessDir "%%i" 
07.
popd 
08.
goto :eof 
09.
 
10.
:ProcessDir 
11.
for /f "delims=" %%d in ('dir %1 /s /b /a-d 2^>nul') do call :ProcessFile "%%d" 
12.
dir %1 /s /b /a-d >nul 2>nul || rd /s /q %1 
13.
goto :eof 
14.
 
15.
:ProcessFile 
16.
set "N=%~pnx1" 
17.
set "N=%N:\=% 
18.
move %1 "%N%" 
19.
goto :eof 
20.
 
21.
:Usage 
22.
echo\ 
23.
echo\ 
24.
echo Bitte beim Aufruf einen existierenden Ordner angeben! 
25.
echo\ 
26.
pause
Grüße
bastla
Bitte warten ..
Mitglied: the-NoMIs
25.06.2008 um 19:19 Uhr
*begeistertdurchdiegegendhüpf*
Bitte warten ..
Mitglied: bastla
25.06.2008 um 19:31 Uhr
Hallo the-NoMIs!

Ist das so zu interpretieren, dass ich Dich guten Gewissens darauf hinweisen darf: Wie setze ich einen Beitrag auf "Gelöst" oder "Erledigt"?

Grüße
bastla
Bitte warten ..
Mitglied: the-NoMIs
25.06.2008 um 20:57 Uhr
darfst du ^^

wird auf der stelle erledigt.

nochmals danke für die sofort-hilfe und viele grüße

simon
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Switche und Hubs
Cisco Catalyst 6506 Lüfter reduzieren? (4)

Frage von Hedwig5 zum Thema Switche und Hubs ...

Windows 10
Reiter Sicherheit auf Ordner-Ebene verschwunden (2)

Frage von HScomputer zum Thema Windows 10 ...

Firewall
gelöst Idee für Filter auf Bridge-Ebene (6)

Frage von SauBaer2014 zum Thema Firewall ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...