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
GELÖST

Dateiowner über for-schleife auslesen und in Text-Datei ausgeben

Frage Entwicklung Batch & Shell

Mitglied: Aeleen

Aeleen (Level 1) - Jetzt verbinden

09.07.2009, aktualisiert 10:21 Uhr, 10053 Aufrufe, 8 Kommentare

Hallo, ich beschäftige mich erst seit kurzem mit der Kommandozeile und habe nun noch eine Frage an der ich leider selbst nicht weiterkomme.

Ich benutze derzeit die Kommandozeile unter Windows XP und habe bisher den DIR-Befehl über folgende For-Schleife:

For /f "delims=" %i in ('dir /s /q /T:A /-C /b C:\ pfad\zur\datei/dateiname\*.*') do @echo %~dpnxi;%~zi;%~ti;%~nxi; >> C:\Ausgabe.txt

ausgeben lassen.

Ich benötige eine Textdatei in der folgende Spalten vorkommen sollen, jeweils durch semikolon getrennt:

[PfadzurDatei\Dateiname;Dateigroesse;Datum&Uhrzeit;Dateiname.Dateiendung;DateiOwner]
Bisherige Ausgabe:
C:\ PfadzurDatei\Dateiname;32768;11.11.2008 11:56; Dateiname.doc;

Mir fehlt nun noch der Übergabeparameter für den DateiOwner. Ich hoffe es hat jemand eine Idee.

Dazu nur kurz: ich möchte das komplette Abteilungslaufwerk, in eine Textdatei auslesen um es in einem anderen System auszuwerten. Dazu brauche ich eben auch den Besitzer jeder Datei.

Hoffe sehr auf rasche Hilfe.

Vielen Dank im Voraus.
Mitglied: mexx
09.07.2009 um 11:13 Uhr
Es gibt zwei Gründen, weshalb Du Dein Vorhaben mit Powershell machen solltest.

1. Die Commandoshell ist ein Auslaufmodell und kann im Vergleich zu Powershell nichts! (Sorry an alle CMD-Liebhaber)
2. Mit Powershell ist Dein vorhaben auch mit einer Zeile umsetzbar samt allen Eigenschaften der Datei inkl. der Ausgabe als CSV Datei, welche für Deine Auswertung vielleicht wichtiger ist.

Wenn Du Powershell verwenden willst, helfe ich Dir gerne bei der Umsetzung Deines Vorhabens. Vielleicht sollten wir Deine angestrebte Auswertung mal näher beleuchten. Was willst Du auswerten? Wie willst Du auf das Ergebnis reagieren?

Lg mexx
Bitte warten ..
Mitglied: Aeleen
09.07.2009 um 12:34 Uhr
Zitat von mexx:
Es gibt zwei Gründen, weshalb Du Dein Vorhaben mit Powershell
machen solltest.

>>Ich weiß nicht ob ich die Powershell hier installieren darf.

Da ich sonst keine Resonanz auf meine Frage erhalten habe, würde ich es gerne mit der Powershell probieren.
Es scheint dann wirklich keine einfache Lösung mit der Kommandozeile zu geben.

1. Die Commandoshell ist ein Auslaufmodell und kann im Vergleich zu
Powershell nichts! (Sorry an alle CMD-Liebhaber)
2. Mit Powershell ist Dein vorhaben auch mit einer Zeile umsetzbar
samt allen Eigenschaften der Datei inkl. der Ausgabe als CSV Datei,
welche für Deine Auswertung vielleicht wichtiger ist.

Wenn Du Powershell verwenden willst, helfe ich Dir gerne bei der
Umsetzung Deines Vorhabens. Vielleicht sollten wir Deine angestrebte
Auswertung mal näher beleuchten. Was willst Du auswerten? Wie
willst Du auf das Ergebnis reagieren?

Also mit Auswertung wollte ich eigentlich die Textdatei in SAS importieren, um damit dann pro User den Speicherplatzverbrauch auszugen, alte Dateien identifizieren, allgemein die Struktur unseres Abteilungslaufwerks ansehen. Das alles vor dem Hintergrund einer späteren Bereinigung des Laufwerks.

Ich benötige dafür eben, den Pfad, die Datei bzw. Dateinamen incl. Dateierweiterung, Speicherplatz, Datum/Zeitstempel, und eben diesen noch fehlenden Dateiowner und alles Zeilenweise und jeweils durch Semikolon getrennt.

Vielen Dank für die schnelle Antwort.

Lg, Aeleen



Lg mexx
Bitte warten ..
Mitglied: 80220
09.07.2009 um 13:05 Uhr
Du kannst das Ergebnis aus der ersten for-Schleife an eine Subroutine übertragen mit call :process "%"

Im Dir-Befehl sind imo nur die Parameter /B und /S wirksam, denn die Anzeige des letzen Zugriffs beinhaltet üblicherweise lediglich das Datum und keine Zeitangabe.

In der Subroutine kannst du dann aus dem übergebenen Parameter %1 deine Variablen aufbauen und anschließend mit showacls aus den Ressource Kit Tools den
"ERSTELLER-BESITZER" ebenfalls mit einer for-Schleife ermitteln. Das Ergebnis schreibst du in eine .csv und brauchst keine Powershell zu installieren.
Bitte warten ..
Mitglied: Biber
09.07.2009 um 14:45 Uhr
Moin aeleen,

willkommen im Forum.

Falls Du doch einfach Deine CMD-Zeile um ein paar Zeichen erweitern willst, dann ersetze denn Teil nach dem "DO..." so:

>For /f "delims=" %i in ('dir /s /q /T:A /-C /b C:\ pfad\zur\datei/dateiname\*.*') do ...
--> jetzt dahinter eine "DIR /Q" (DIR mit OWNER-Anzeige)

01.
 For /f "delims=" %i in ('dir /s /q /T:A /-C /b C:\ pfad\zur\datei/dateiname\*.*') do... 
02.
 @For /f "tokens=4" %a in ('dir /q "%i"^|find /i "%~nxi"') do @echo %~dpni;%~zi;%~ti;%~nxi;%a; 
Dann hast Du es wie gewünscht.

Ich nutze also deinen bisherigen Befehl, der ja ALLE Dateien mit der Suchmaske "*.*" liefert
und führe danach auf die EINZELNE Datei das DIR /Q nach derselben Mimik (auch in einer FOR/F-Anweisung ausgewertet) aus.

Grüße
Biber
Bitte warten ..
Mitglied: 80220
09.07.2009 um 15:09 Uhr
@Biber
den /Q Parameter kannte ich noch nicht, den habe ich glatt übersehen.

Aber meinen Hinweis zum /T-Parameter hast du leider überlesen, der funktioniert nämlich nicht im Zusammenhang mit /B
Bitte warten ..
Mitglied: Aeleen
09.07.2009 um 16:49 Uhr
Herzlichen Dank - habe es gerade ausprobiert und es funktioniert. Danke für die unkomplizierte Lösung.

Lg, Aeleen
Bitte warten ..
Mitglied: Biber
09.07.2009 um 17:10 Uhr
Moin dumdideldum & Aeleen,


@80220
Ja, stimmt, Deine "DIR /T"-parameter-Anmerkung habe ich überlesen. Sorry.

@Aeleen
Aber, falls Du wirklich das "DIr /t:a"/Letzte Zugriffsdatum brauchst... ginge auch mit den beiden FOR-Anweisungen

  • mit der ersten "FOR/F in DIR"-Anweisung wie oben stehend ein "DIR /B /S" über alles und über alle Ebenen
  • mit der zweiten wie oben stehende ein "DIR /Q" auf jede einzelne Datei + zusätzlich dort den /T:a-Schalter einbauen
  • und von dieser zweiten Ausgabe nicht nur das 4. Token (OWNER), sondern auch Token 1 & 2 (Datum/Uhrzeit) verwerten.

Die zweite FOR /F-Anweisung sollte dann so aussehen:
.... @For /f "tokens=1-4" %a in ('dir /q "%i"^|find /i "%~nxi"') DO....
... wobei dann sein wird:
%a = Datum letzter Zugriff
%b = Zeit letzter Zugriff
%d = Owner der Datei
^^ Setzt Du noch einen grünen Haken dran bitte und schreibst nie wieder "Vielen Dank im voraus" hier?

Grüße
Biber
Bitte warten ..
Mitglied: Aeleen
09.07.2009 um 17:15 Uhr
Zitat von Biber:
Moin dumdideldum & Aeleen,


@80220
Ja, stimmt, Deine "DIR /T"-parameter-Anmerkung habe ich
überlesen. Sorry.

@Aeleen
Aber, falls Du wirklich das "DIr /t:a"/Letzte Zugriffsdatum
brauchst... ginge auch mit den beiden FOR-Anweisungen

  • mit der ersten "FOR/F in DIR"-Anweisung wie oben stehend
ein "DIR /B /S" über alles und über alle Ebenen
  • mit der zweiten wie oben stehende ein "DIR /Q" auf jede
einzelne Datei + zusätzlich dort den /T:a-Schalter einbauen
  • und von dieser zweiten Ausgabe nicht nur das 4. Token (OWNER),
sondern auch Token 1 & 2 (Datum/Uhrzeit) verwerten.

Die zweite FOR /F-Anweisung sollte dann so aussehen:
> .... @For /f "tokens=1-4" %a in ('dir /q
"%i"^|find /i "%~nxi"') DO....
... wobei dann sein wird:
%a = Datum letzter Zugriff
%b = Zeit letzter Zugriff
%d = Owner der Datei
^^ Setzt Du noch einen grünen Haken dran bitte und schreibst nie
wieder "Vielen Dank im voraus" hier?

>>in Ordnung Biber, ist bestimmt, weil ich auf der Arbeit immer so förmlich Briefe schreibe.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
IDs aus Text auslesen und in for-Schleife bearbeiten
gelöst Frage von zensbertBatch & Shell7 Kommentare

Hi, ich hätte eine Frage. Acronis bietet die Möglichkeit Tasks über CMD zu stoppen; dies ist aber recht umständlich. ...

Batch & Shell
For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse
gelöst Frage von grisurBatch & Shell4 Kommentare

Hallo zusammen, habe mich extra angemeldet, da ich bei einem kleinen Problem nicht so schnell weiterkomme. Bin Batch-Anfänger und ...

Batch & Shell
Ergebnis in Text datei ausgeben
gelöst Frage von caschoplBatch & Shell2 Kommentare

Hallo, irgendwie stehe ich auf dem schlauch. Habe folgende Batch erstellt, aber der Text wier immer überschrieben. Das ergebnis ...

Batch & Shell
For Schleife in einer .sh Datei
Frage von CrystalFlakeBatch & Shell4 Kommentare

Hallo Com, ich habe die Aufgabe bekommen in einer .sh File die beim Kuden ausgeführt werden soll, eine for ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 2 StundenMac OS X

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser ereichbar sind. Leider fehlt ...

Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 9 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 11 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 14 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1017 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...