Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Ordnerhierarchie auf eine Ebene reduzieren?

Mitglied: the-NoMIs

the-NoMIs (Level 1) - Jetzt verbinden

24.06.2008, aktualisiert 25.06.2008, 4668 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 ..
Ähnliche Inhalte
Utilities
Mobilfunk-Datenvolumen reduzieren
gelöst Frage von raumi20Utilities7 Kommentare

Hallo, ich möchte gerne das Datenvolumen meiner mobilen Endgeräte reduzieren, dazu suche ich nach einer Möglichkeit, den Datenverkehr zu ...

PHP
Ticketsystem mit Meldung über mehrere Ebenen
Frage von tsunamiPHP4 Kommentare

Hallo, ich brauche bitte einen Ansatz: Gegeben sei eine Abteilungshierachie. 1. Chef 2. Techische Leitung 3. Elektriker, Sanitär, Hausmeister ...

Switche und Hubs
Cisco Catalyst 6506 Lüfter reduzieren?
Frage von Hedwig5Switche und Hubs4 Kommentare

Hallo Administratoren! Wir setzen einen Cisco Catalyst 6506 mit HighSpeed Fan Tray ein. Die Lüfter "pusten" (laut Ton) immer ...

Firewall
Idee für Filter auf Bridge-Ebene
gelöst Frage von SauBaer2014Firewall6 Kommentare

Servus miteinander ich versuche mich gerade beim Filter setzen auf Bridge - Ebene ! Strebe an, dass an 3 ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 6 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 13 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 17 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...