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
Kommentar vom Moderator Biber am 19.06.2011 um 19:56:40 Uhr
Ich gehe mal davon aus, dass ein Batchschnipsel ausreicht und verschiebe den Beitrag von "Tools & Utilities" nach "Batch & Schnell"
GELÖST

Ordnerliste mit DIR -B Befehl, Ausgabeformat mit Datum?

Frage Entwicklung Batch & Shell

Mitglied: Brainless-DJ

Brainless-DJ (Level 1) - Jetzt verbinden

19.06.2011, aktualisiert 19:56 Uhr, 6526 Aufrufe, 20 Kommentare

Hallo,

ich habe eine Batch-Datei erstellt welche mir alle Unterordner von einem Hauptordner in eine TXT Datei schreibt.
recht einfach mit dir /b >>"W:\Lager\Ordnerliste.txt"
ich nutze den /b weil ich die Kopf und Fußdaten des normalen dir Befehls nicht möchte.

was mir jetzt allerdings fehlt ist das Datum an dem die jeweiligen Ordner erstellt wurden.
gibt es hier noch einen Trick oder ein Tool mit dem ich das hinkriegen kann?
als Output hätte ich gerne "Unterordner1 [TAB] ErstelltDatum"

wenn einer von euch hier ne Lösung hat wär das super.
ich grübel und suche schon lange...

Grüße
Frank
Mitglied: Friemler
19.06.2011 um 19:35 Uhr
Hallo Brainless-DJ,

wenn es ein bisschen einfacher als Deine Vorgabe sein darf:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "SrcDir=xxxx" 
07.
set "OutputFile=W:\Lager\Ordnerliste.txt" 
08.
 
09.
(for %%d in ("%SrcDir%\*.*") do ( 
10.
   echo %%~td   %%~fd 
11.
12.
) > "%OutputFile%"
Das Verzeichnis, dessen Inhalt Du ausgegeben haben willst, musst Du in die Variable SrcDir statt dem xxxx eintragen.

Das liefert in der ersten Spalte das Datum und in der zweiten Spalte die Zeit der letzten Änderung. In der dritten Spalte wird der vollständige Pfad zu den Dateien angezeigt. Wenn Du nur die Dateinamen haben willst, ersetze in Zeile 10 das %%~fd durch %%~nxd.

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
19.06.2011 um 20:27 Uhr
Aloha Friemler,

vielleicht wird ihm die Uhrzeit aber nicht gefallen :P

greetz André

P.S.: so viele Zeilen ... *fg*
Bitte warten ..
Mitglied: Friemler
19.06.2011 um 20:37 Uhr
Hi Skyemugen,

Zitat von Skyemugen:
vielleicht wird ihm die Uhrzeit aber nicht gefallen :P

dann soll er sich nochmal melden. Eine zusätzliche FOR /F-Schleife sollte es dann tun.


Zitat von Skyemugen:
P.S.: so viele Zeilen ... *fg*

Zeilen sparen ist nicht mein Ding. Lieber übersichtlich und verständlich als kurz. Außerdem ist der TO Anfänger.

Schönen Abend
Friemler
Bitte warten ..
Mitglied: Brainless-DJ
19.06.2011 um 21:18 Uhr
Nabend!

und vielen Dank für die schnellen Antworten.

ach, was heist gefallen.... ich brauch die Uhrzeit nicht, aber stören tut es auch nicht.

die Lösung von Friemler funktioniert. allerdings nur für Dateien.
was ich allerdings benötige sind Ordner. und die werden leider nicht gelistet.

Ausgabe mit Friemlers Zeilen ist:
19.06.2011 21:12 W:\Lager\Ordner\Ordner\Neu Textdokument.txt

aber ich sehe schon, hier sind die Spezialisten, die Lösungist nahe.

Grüße
Frank
Bitte warten ..
Mitglied: Biber
19.06.2011 um 21:29 Uhr
Moin Brainless-DJ,

willkommen im Forum.
Den noch fehlenden Feinschliff kannst du selbst ganz schnell ergänzen.

Wenn du am CMD-Prompt ein "DIR /?" eingibst, dann werden die die Parameter angezeigt, mit denen du auf "nur Verzeichnisse" eingrenzen kannst.

[Edit]
Wenn du am CMD-Prompt ein "FOR /?" eingibst, dann wird dir der Parameter /D angezeigt, mit dem du auf "nur Verzeichnisse" eingrenzen kannst.
{/Edit]
Dann kannst du den finalen Schnipsel selbst posten.

Grüße
Biber
Bitte warten ..
Mitglied: Brainless-DJ
19.06.2011 um 21:35 Uhr
Hi Biber,

das eingrenzen auf Ordner kenne ich für den dir Befehl. wusste zwar nicht dass es der gleiche für die FOR Schleife ist aber gut, man lernt nie aus. ;)
im Schnipsel von Friemler gibt es leider gar keine Ordner in der Ausgabe, also auf Ordner eingegrenzt wäre dann der Output null...

Grüße
Frank
Bitte warten ..
Mitglied: Friemler
19.06.2011 um 21:50 Uhr
Hallo Brainless-DJ,

OK, dann so:
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
 
06.
set "SrcDir=xxxx" 
07.
set "OutputFile=W:\Lager\Ordnerliste.txt" 
08.
 
09.
(for /f "tokens=1,3*" %%a in ('dir "%SrcDir%\*.*" ^| findstr "^[0-9].*"') do ( 
10.
   if "%%b" equ "<DIR>" ( 
11.
     echo %%a  %%b %%c 
12.
   ) else ( 
13.
     echo %%a        %%c 
14.
15.
16.
) > "%OutputFile%"
Dann ist die Uhrzeit auch weg. Aber der Pfad fehlt. Kannst Du den bei Bedarf selbst ergänzen?

@Biber:
Ich habe es so verstanden:
  • Keinen Header und keine Zusammenfassung
  • Ordner und Dateien anzeigen
  • Nur das Datum, keine Größe, keine Uhrzeit


Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
19.06.2011 um 21:51 Uhr
Aloha,

... hö?

wenn du den Parameter /D hinter for klemmst, hast du doch die reine Ausgabe der Ordner ... den Rest einfach so belassen

greetz André
Bitte warten ..
Mitglied: Biber
19.06.2011 um 21:53 Uhr
Moin Brainless-DJ,

also bei mir werden so (nur) die Unterverzeichnisse angezeigt:
>for /D %d in ("f:\temp\*.*") do @echo %~td   %~fd 
20.05.2009 16:19   f:\temp\redist 
20.05.2009 16:19   f:\temp\readmes 
20.05.2009 16:19   f:\temp\licenses
Ich denke, in Friemlers Schnipsel ist ein "/D" verlustig gegangen.
Jedenfalls, FALLS ich das mit dem "Nur.Ordner-anzeigen" richtig verstanden habe.

Grüße
Biber
Bitte warten ..
Mitglied: Skyemugen
19.06.2011 um 21:53 Uhr
Aloha Friemler,

nö, ich lese im EP nur etwas von Ordner und Unterordner, zumal du dir mit dem Header selbst widersprichst :-P (Oder warum die vorherige Schleife auf diese Art mit kompletten Pfad?)

greetz André
Bitte warten ..
Mitglied: Friemler
19.06.2011 um 21:58 Uhr
Hi André,

Zitat von Skyemugen:
warum die vorherige Schleife auf diese Art mit kompletten Pfad?

weil ich es nicht eindeutig verstanden habe.

Zitat von Skyemugen:
ich lese im EP nur etwas von Ordner und Unterordner

Im EP schreibt er, er hätte DIR /b verwendet, das liefert Dateien und Verzeichnisse.

Grüße
Bitte warten ..
Mitglied: Skyemugen
19.06.2011 um 22:01 Uhr
Aloha Friemler,

ja das mag richtig sein, aber für mich zählt eher, was er beschreibt, das dabei rauskommen soll und nicht was er versucht hat und was dabei herauskam
Und daher lese ich nur: Ordner, Unterordner ... OUTPUT: Unterordner *fg*

greetz André
Bitte warten ..
Mitglied: Brainless-DJ
19.06.2011 um 22:05 Uhr
Hi Biber,

ich sagte ja, ich kennen /D für den dir Befehl, für for wusste ich den nicht. es funktioniert nun *freu*
meine Zeile jetzt:
for /D %%d in ("%SrcHD%\*.*") do (echo %%~td %%~nxd) >>"%Output%"

jetzt kuck ich mal ob ich mit deiner Erweiterung das Datum herausbekomme.

übrigens: das mit Unterordnern und Dateien hab ich wohl ein bischen undeutlich beschrieben.
es gibt in meinem Hauptordner keine Dateien, nur Unterordner. deshalb hab ich nicht daran gedacht das zu erwähnen.

Grüße
Frank
Bitte warten ..
Mitglied: Brainless-DJ
19.06.2011 um 23:38 Uhr
YEAH! es läuft mit:

for /f "tokens=1,3*" %%a in ('dir "%SrcHD%\*.*" ^| findstr "^[0-9].*"') do (if "%%b" equ "<DIR>" (if "%%c" neq "." (if "%%c" neq ".." (echo %%a %%c >>"%Output%"))))

ohne eure Hilfe hätt ich das wohl nicht geschafft, vielen Dank erstmal!

ist vielleicht nicht der einfachste Weg, aber es läuft so wie ich es benötige.
wenn es eine einfachere Möglichkeit gibt als die vielen equ und neq lasst es mich wissen.

Grüße
Frank
Bitte warten ..
Mitglied: Friemler
20.06.2011 um 00:51 Uhr
Hallo Brainless-DJ,

wenn Du die beiden Pseudo-Verzeichnisse . und .. nicht sehen willst, gibt es keine kürzere Möglichkeit. Da Du bei Deiner Methode Dateien und Verzeichnisse nicht mehr unterscheiden kannst, aber beides angezeigt würde wenn Dateien vorhanden wären, solltest du beim DIR-Befehl noch /a:d ergänzen, damit auch nur Verzeichnisse angezeigt werden.

Warum willst Du in einer Batchdatei eigentlich unbedingt einen Einzeiler? Ist ziemlich unübersichtlich...

Gruß
Friemler
Bitte warten ..
Mitglied: Brainless-DJ
20.06.2011 um 11:01 Uhr
Moin Friemler,

habe das /a:d eingefügt und dafür das equ <DIR> entfernt. funktioniert immernoch einwandfrei. danke für den Hinweis!

das mit dem Einzeiler ist ganz einfach, als Mehrzeiler läuft es bei mir nicht. desween reduziere ich es zurück auf eine Zeile.

Grüße
Frank
Bitte warten ..
Mitglied: Friemler
20.06.2011 um 11:42 Uhr
Moin Brainless-DJ,

so sollte es aber laufen (in einem Batchfile, nicht bei direkter Eingabe auf der Konsole):
01.
@echo off 
02.
 
03.
for /f "tokens=1,3*" %%a in ('dir /a:d "%SrcHD%\*.*" ^| findstr "^[0-9].*"') do ( 
04.
  if "%%c" neq "." if "%%c" neq ".." ( 
05.
     >> "%Output%" echo %%a %%c 
06.
07.
)
Ich habe die Umleitung in die Ausgabedatei vor den ECHO-Befehl gesetzt, damit nach dem %%c die Zeile endet. In Deiner Version wird hinter dem Dateinamen noch ein Leerzeichen in die Datei geschrieben, denn das Leerzeichen zwischen %%c und >> zählt mit. Dieses Leerzeichen in Deiner Version einfach wegzulassen könnte unter bestimmten Umständen zu Fehlern führen.

Wenn Dein Problem damit gelöst ist, setze den Beitrag bitte auch auf gelöst.


Gruß
Friemler
Bitte warten ..
Mitglied: Brainless-DJ
20.06.2011 um 11:47 Uhr
Hi,

bei mir wollte das als Mehrzeiler nicht funktionieren.
werd mir das heute Abend nochmal anschauen.
gelöst wird gleich gesetzt.

Grüße
Frank
Bitte warten ..
Mitglied: siebat
16.08.2011 um 15:58 Uhr
Ich arbeite auch gerade daran, eine Dateiauflistung zu erstellen, der erste Beitrag von Friemler hat mir schon ziemlich weitergeholfen. Allerdings kriege ich des nicht weiter umgesetzt, dass ich alle Dateien auch von Unterverzeichnissen mit angezeigt bekomme. Kann mir jemand den Code weiter anpassen, da ich auf dem Thema eine absolute null bin?



so wie es mit der ersten Formel raus kommt ist es schon wirklich i.O.
23.05.2011 14:31 d:\1\01.jpg
23.05.2011 14:31 d:\1\02.jpg
23.05.2011 14:31 d:\1\03.jpg

nur wie schon gesagt werden die Unterordner nicht mit durchsucht bzw. die Dateien in die Log mit reingeschrieben... Die Uhrzeit wäre auch nicht unbedingt von nöten, kann aber auch stehen bleiben...

Vielen dank schon mal für eure hilfe...



wenn es ein bisschen einfacher als Deine Vorgabe sein darf:
01.
> @echo off 
02.
>  
03.
> setlocal 
04.
>  
05.
>  
06.
> set "SrcDir=xxxx" 
07.
> set "OutputFile=W:\Lager\Ordnerliste.txt" 
08.
>  
09.
> (for %%d in ("%SrcDir%\*.*") do ( 
10.
>    echo %%~td   %%~fd 
11.
>  ) 
12.
> ) > "%OutputFile%" 
13.
> 
Das Verzeichnis, dessen Inhalt Du ausgegeben haben willst, musst Du in die Variable SrcDir statt dem xxxx eintragen.

Das liefert in der ersten Spalte das Datum und in der zweiten Spalte die Zeit der letzten Änderung. In der dritten Spalte
wird der vollständige Pfad zu den Dateien angezeigt. Wenn Du nur die Dateinamen haben willst, ersetze in Zeile 10 das
%%~fd durch %%~nxd.

Gruß
Friemler
Bitte warten ..
Mitglied: Skyemugen
16.08.2011 um 16:19 Uhr
Zitat von siebat:
nur wie schon gesagt werden die Unterordner nicht mit durchsucht bzw. die Dateien in die Log mit reingeschrieben... Die Uhrzeit wäre auch nicht unbedingt von nöten, kann aber auch stehen bleiben...

Aloha,

da meine Laune heute nicht so drollig ist, geb' ich dir die Option kann aber auch stehen bleiben
Ich will mal nicht so sein:

01.
for /r "%SrcDir%" %%d in (*.*) do ( 
02.
for /f "tokens=1 delims= " %%s in ("%%~td") do echo %%s   %%~fd 
03.
)
greetz André
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 10
gelöst Windows 10 - Datum und Zeitfehler bei Update (3)

Frage von swisstom zum Thema Windows 10 ...

Windows Userverwaltung
gelöst Datum einer Gruppenmitgliedschaft (1)

Frage von slansky zum Thema Windows Userverwaltung ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...