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
Kommentar vom Moderator Biber am 21.09.2009 um 22:03:44 Uhr
Na ja, ich verschiebe den Beitrag schon mal von "Windows" nach"Batch & Shell".

Auch wenn da wieder dieses "Dank im voraus" drinsteht.

Grüße Biber

Unterverzeichnisse erstellen - anhand Dateiname

Mitglied: sk1412

sk1412 (Level 1) - Jetzt verbinden

21.09.2009, aktualisiert 22.09.2009, 5468 Aufrufe, 10 Kommentare

Hallo Adminexperten
freu mich sehr über einen Tip
Besten Gruss sk1412

Hallo Admin-Experten

möchte gern Folgendes erreichen:
in einem Verzeichnis existieren VIIIIIIEEEELE Dateien (über 10.000 Dateien) mit der "Logik" im Dateinamen
JJJJMMTT_hhmmss_xxx.jpg /.mov /.txt ..usw
Ich bin auf der Suche nach einer Möglichkeit, diese Dateien in Unterordnern zu verschieben.
Diese Unterordner existieren noch nicht.
Meine Idee:
Erstelle ein Unterverzeichnis für jedes Jahr/jeden Monat
und verschiebe alle relevanten Dateien in die richtigen Verzeichnisse

Also:
Erstelle ein Verzeichnis mit dem Namen z.b. 200909
und kopiere alle Dateien, die mit dem Namen 200909 beginnen in dieses Verzeichnis
Das sollte dann für ALLE Dateien durchgeführt werden.
Dasselbs soll natürlich für alle anderen Dateien nach der gleichen Logik durchgeführt werden.

Ich würd mich seeehr über einen Tip freuen, um die Riesenflut an Dateien zu sortieren

Besten Dank im voraus
sk1412
Stefan
Mitglied: bastla
21.09.2009 um 23:35 Uhr
Hallo sk1412!

Etwa so:
01.
@echo off & setlocal 
02.
set "Basis=D:\Das Verzeichnis" 
03.
 
04.
pushd "%Basis%" 
05.
for /f "delims=" %%i in ('dir /b /a-d') do call :ProcessFile "%%i" 
06.
popd 
07.
goto :eof 
08.
 
09.
:ProcessFile 
10.
set "Datei=%~1" 
11.
set "Verz=%Datei:~,6%" 
12.
if not exist "%Verz%" md "%Verz%" 
13.
move "%Datei%" "%Verz%" 
14.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
22.09.2009 um 00:30 Uhr
Hallo sk1412,

[edit]
ups ich war wohl zu lange woanders beschäftigt.
ich sollte mich doch mal auf meine sachen konzentrieren.....
[/edit]

ja "besten Dank im Vorraus" wird nicht gerne gesehen dafür aber ein Danke wenn geholfen worden ist. Und bei Erfolg danach bitte den grünen Haken setzen.

hier ist Dein code mit vorschaufunktion und anschliessender Bestätigungsfrage.
einfach den Ordner wo die ganzen dateien drin sind auf den Batch ziehen oder im CMD Batchname "ordnername"

01.
:: ------- schnipp movefiles2-0,6-namefolder.bat 
02.
@echo off & setlocal 
03.
if exist "%~1." (pushD "%~1") else goto :eof 
04.
set "Vorschau="& set "proceed=" 
05.
echo.Es erfolgt erst eine Vorschau&echo.& ping localhost -n 3 >nul 
06.
:begin 
07.
if not defined Vorschau (set "Vorschau=@echo."&goto :proceed) else set "Vorschau=" 
08.
echo.&echo.&echo. 
09.
set /p proceed=Moechtest Du die Daten wie es angezeigt wurde Verschieben? [J] [N] 
10.
if  /i "%proceed%" neq "j" goto :eof 
11.
:proceed 
12.
for %%i in (*) do (set "name=%%i" 
13.
	setlocal enabledelayedexpansion 
14.
	%Vorschau% 
15.
	if not exist "!name:~0,6!" %Vorschau%mkdir "!name:~0,6!" 
16.
	%Vorschau%move "!name!" "!name:~0,6!\!name!" 
17.
	endlocal 
18.
19.
if not defined proceed goto :begin 
20.
popD 
21.
:: ------- schnapp movefiles2-0,6-namefolder.bat
Gruß Phil
Bitte warten ..
Mitglied: bastla
22.09.2009 um 00:57 Uhr
@PH
Nice - allerdings funktioniert die Zeile 10 (bei mir) in der Form
if /i "%proceed%" neq "j" goto :eof
besser - in Deiner Fassung endet's (bei mir) mit
""j"" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Der Ordnung halber könntest Du auch noch das schließende Anführungszeichen in Zeile 12 setzen.

Grüße
bastla

P.S.: Die Vorschau für 10.000+ Dateien könnte etwas ermüdend wirken ...
Bitte warten ..
Mitglied: pieh-ejdsch
22.09.2009 um 01:44 Uhr
@ bastla

das " in Zeile 12 hab ich übersehen...
hab mal die 2 Zeilen angepasst...

warum allerdings bei Dir %proceed% mit umschliessenden Gänsefüschen kommt frag ich mich....
bei mir ist es ohne
set /p macht doch gar keine Gänsefüschen drumherum
Hhhmmmm...

ich hab mal %windir%\system32 draufgezogen über 2300 Files nichtmal 2 sekunden also so lange dauerts nicht....

Gruß Phil
Bitte warten ..
Mitglied: bastla
22.09.2009 um 08:53 Uhr
@PH
warum allerdings bei Dir %proceed% mit umschliessenden Gänsefüschen kommt frag ich mich....
bei mir ist es ohne
set /p macht doch gar keine Gänsefüschen drumherum
Hhhmmmm..,
Davon, dass der Fehler bei Dir nicht auftritt, war ich ausgegangen (deshalb auch der zweimalige Hinweis "bei mir"), aber es war schon spät und ich hatte keine Lust mehr, der Sache nachzugehen ...

Mit einer Umkehrung von "not" und "/i" klappt's übrigens auch bei mir:
if /i not "%proceed%" == "j" goto :eof
(was in der Hinsicht logisch erscheint, dass "/i" eine Option von "if" und nicht von "not" ist).
ich hab mal %windir%\system32 draufgezogen über 2300 Files nichtmal 2 sekunden also so lange dauerts nicht....
Die Ausgabe nicht, aber das Lesen ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
22.09.2009 um 09:47 Uhr
<OT>
@pieh-ejdsch
set /p macht doch gar keine Gänsefüschen drumherum
WTF ist "Gänsefüschen"??? So was wie Hochseeangeln für die armen Verwandten auf'm platten Land?

Außerdem werden wohl einige Worte südlich des Mittellandkanals zwar mit "ü" ("Hürsch", "Kürche", "Der Herr ist mein Hürte" , "Füschen" ) gesprochen, aber doch mit "i" geschrieben, oder?

P.S. Wir in Bremen würden auch niemals bei 10000 Dateien eine Vorschaufunktion auch nur andenken..*gg

Grüße
Biber
</OT>
Bitte warten ..
Mitglied: pieh-ejdsch
22.09.2009 um 10:29 Uhr
[OT]
@Biber

ja gut normal schon Gänsefüßchen statt Gänsefüschen....es war schon spät...

ist so der (/mein) sprachgebrauch für Anführungszeichen ....

leider weis ich kein Kürzeres Synonym dafür nur ein Längeres: Federfiehlatschen

[/OT]

ja das mit der Vorschau für 10.000 Files ist schon schlecht - stimmt
für zum Überfliegen der Vorschau bei wenigen 100 Files wäre es zum Prüfen vllt noch OK.

im Grunde hab ich es nur benutzt um bei mir zu testen.

das if /i not
was anderes ist als if not /i
wusste ich nicht vllt nur ein schusselfehler aber nicht mit absicht eingebaut.

Gruß Phil

PS. gibts noch ein Feedback vom Threadstarter?
Bitte warten ..
Mitglied: sk1412
22.09.2009 um 21:03 Uhr
Hey Phil,
erst einmal vielen Dank für die schnelle Antwort !
Ich habe es heute abend erst einmal mit ein paar hundert Dateien probiert -
und es hat wunderbar funktioniert ! Einfach Perfekt - Danke !
Bevor ich mich jetzt an die vielen Dateien "ran mache"

ich bin kein Experte auf der DOS-Ebene ;O - das letzte Mal habe ich mcih vor ca 15 Jahren
mit DOS im "Groben" beschäftigt - und vielen von Deinen Code-Zeilen verstehe ich nicht.
Deswegen bin ich von deinen wenigen Codezeilen einfach nur begeistert
und stelle mir die Frage: Warum teure Programme kaufen, wenn wohl vieles über DOS
einfach und schnell "erledigt" werden kann - auch noch in Windows-Zeiten ;)

aber eine Frage habe ich:
Gibt es auch einen Code, der den ganzen Weg "anders" herum ausführt ?
Also: ALLE Dateien aus ALLEN Unterverzeichnissen in das "Grundverzeichnis" verschieben ?
Oder soll ich dafür besser einen weiteren Thread aufmachen ?

noch eine kleine weitere Frage:
im Code-Fenster kann ich "in den Speicher kopieren" anklicken. Wenn ich dann den
Inhalt im Editor einfüge, werden die Zeilennummern mit eingefügt - die ich dann manuell
löschen musste. .... geht das auch einfacher ?
### hat sich erledigt: muss einfach nur "Quelltext" anklicken - sorry für die vorschnelle Anfrage ###

Besten Gruß
sk1412
Stefan
Bitte warten ..
Mitglied: pieh-ejdsch
23.09.2009 um 00:41 Uhr
hallo sk1412,

bei Dir lief das Ding mit Verschieben?
ich habe ja den Batch nur bis zum J N getestet und immer N gedrückt.
bei mir ging der Batch überhaupt nicht mit verschieben....warum - warscheinlich weil /i und not im IF net geht...KA

aber der Orndung halber einen korregierten Batch:
01.
:: ------- schnipp movefiles2-0,6-namefolder.bat 
02.
@echo on & setlocal 
03.
if exist "%~1" (pushD "%~1") else goto :eof 
04.
set "Vorschau="& set "proceed=" 
05.
echo.Es erfolgt erst eine Vorschau&echo.& ping localhost -n 3 >nul 
06.
:begin 
07.
if not defined Vorschau (set "Vorschau=@echo."&goto :proceed) else set "Vorschau=" 
08.
echo.&echo.&echo. 
09.
set /p proceed=Moechtest Du die Daten wie es angezeigt wurde Verschieben? [J] [N] 
10.
if /i "%proceed%" == "j" (echo. >nul) else goto :eof 
11.
:proceed 
12.
for %%i in (*) do (set "name=%%i" 
13.
	setlocal enabledelayedexpansion 
14.
	%Vorschau% 
15.
	if exist "!name:~0,6!" (%Vorschau%move "!name!" "!name:~0,6!\!name!" 
16.
	) else %Vorschau%mkdir "!name:~0,6!" && %Vorschau%move "!name!" "!name:~0,6!\!name!" 
17.
	endlocal 
18.
19.
if not defined proceed goto :begin 
20.
popD 
21.
pause 
22.
:: ------- schnapp movefiles2-0,6-namefolder.bat
eine Rückieb Batch habe ich auch irgendwo hier auf der Platte rumliegen..ja war die denn .. so hier.
Achtung da Dürfen aber keine Dateiname identisch sein aber bei Deinen Files habne ja alle einen Vorsatz im Dateinamen der den Ordner entspricht. die Ordner werden anschliesend alle wieder gelöscht. wenn Du das net willst dann entferne && rmdir %%i

01.
pushD "%~1" 
02.
for /f "tokens=*" %%i in ('dir /a:d /b') do (move "%%i\*.*"  && rmdir %%i)
so ab inne haia muss morgen meine Kisten & Säcke Packen und Möbel zerlegen.

Gruß Phil
Bitte warten ..
Mitglied: sk1412
23.09.2009 um 22:21 Uhr
Hallo Phil
vielen Dank für Deine Antwort --- und wie ich verstehe, bist Du wohl im "Umzugs-Stress"
Hoffe sehr, dass Du alles gut "über die Wupper bekommst" - Drücke die Daumen !!
Wenn das Packen und Zerlegen so funktioniert wie dein Antwortverhalten im Thread
... dann kann ja nix schief gehen *g

Wenn Du Zeit und Lust hast:
Könnte man den letzten Code (ALLE Dateien aus ALLEN Unterverzeichnissen in das "Grundverzeichnis" verschieben) so verändern, dass - falls es DOCH doppelte Dateien gibt -
diese Dateien automatisch mit einer Ergänzung - z.b. 20090923_... (2).jpg-
also mit der Ergänzung (2) -oder andere- abspeichern kann.
Warum ich das frage ?
Ich musste aufgrund eines massiven Festplattenfehlers die Dateien mit
verschiedenen Recovery-Tools wiederherstellen.
Nur leider funktionieren diese Programme mit sehr unterschiedlicher Qualität.
Bei manchen Dateien sind zwar die Dateigrößen OK, aber die Inhalte lassen sich nicht anzeigen.
Andere Programme erlauben das recovery einzelner Dateien einwandfrei zu.
Welchen Programm welche Dateien einwandfrei wiederherstellen kann, ist auf den ersten Blick
nicht erkennbar. Deshalb habe ich vor, alle Recovery-Verzeichnisse in EIN Verzeichnis zu kopieren
um dann die Prüfung auf "korrekte" Dateien besser nachvollziehen zu können.
Ich hoffe, ich konnte mein Probl. einigermassen deutlich beschreiben
und freue mich auf eine Antwort ))))

Besten Gruß und lass dich vom "Packen und Zerlegen" nicht Mürbe machen ;)
Besten Gruss sk1412 Stefan
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ordnernamen aus Dateinamen erstellen
Frage von Dr.ByteBatch & Shell1 Kommentar

Hi Gemeinde, benötige ein kleines Tool. Es liegen ca 100 Dateien in einem Ordner. Ich bräuchte nun ein Tool ...

Batch & Shell

Ordner anhand von Dateinamen erstellen und Dateien in Ordner kopieren

gelöst Frage von getmovingBatch & Shell3 Kommentare

Hallo, ich brauche eine einfache Batch-Datei für Windows, die alle Dateien in einem Ordner bearbeitet. Es sollen alle jpg-Dateien, ...

Batch & Shell

Für Dateiname einen Ordner erstellen und dann entsprechnede Datein da rein schieben

Frage von Focus1610Batch & Shell1 Kommentar

Hallo, ich habe ein Problem mit Win Powershell. Habe einen Win7 Rechner der als Server und NAS fungiert. Weiterhin ...

Batch & Shell

Programm in allen Unterverzeichnissen ausführen

gelöst Frage von RotnasenkaterBatch & Shell8 Kommentare

Servus, liebe Gemeinde! Da mir hier schonmal so freundlich und kompetent geholfen wurde, wende ich mich nochmals mit einer ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 3 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 16 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 18 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 18 StundenMicrosoft11 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server31 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...