WinFuture-Forum.de: Dateien Per Batch auslesen - WinFuture-Forum.de

Zum Inhalt wechseln

Windows 10: Alle News, der Download sowie zahlreiche Screenshots und Videos zum neuen Betriebssystem von Microsoft. Jetzt im WinFuture Windows 10 - Special informieren!
  • 3 Seiten +
  • 1
  • 2
  • 3

Dateien Per Batch auslesen

#16 Mitglied ist offline   hla2610 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 22. Januar 19
  • Reputation: 2

geschrieben 12. März 2022 - 23:12

@joe13

wenn in der zusammengesetzen Ordnerstruktur der Backslash gegen den normalen Slash ('\\docfile/foto\\') getauscht wird, funktioniert es bei mir.

Gruß
hla
0

Anzeige



#17 Mitglied ist offline   joe13 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.809
  • Beigetreten: 10. September 09
  • Reputation: 123

geschrieben 14. März 2022 - 14:54

.. und man kann auch den dortigen Backslash gegen 2x Backslash ersetzen - geht auch.
Was ist das für eineSyntax?

Vor allem aber würd mich interessieren, was da sonst hinter wmic & forfiles steckt.

Dieser Beitrag wurde von joe13 bearbeitet: 14. März 2022 - 17:17

Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
0

#18 Mitglied ist offline   CaNNoN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 484
  • Beigetreten: 16. November 05
  • Reputation: 78

geschrieben 15. März 2022 - 00:45

@joe13

das forfiles ist so ein angestaubtes relikt aus windows 98 zeiten.

wmic hat inzw. auch schon staub angesetzt - seit xp dabei und wohl in den neuesten win10/11 dev. builds durch powershell ersetzt, ist aber eines der maechtigsten tools die windows so mitliefert. damit greifst du auf die windows management instrumentation (wmi) zu und kannst somit u.a. auf recht unkomplizierte weise nahezu alle infos auslesen die man so vom windows-rechenknecht bekommen kann - die syntax erscheint manchmal etwas verquert, aber lohnt sich auf jeden fall sich da mal ein wenig einzulesen - respektive die wmi-powershell befehle :-)
0

#19 Mitglied ist offline   joe13 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.809
  • Beigetreten: 10. September 09
  • Reputation: 123

geschrieben 15. März 2022 - 15:21

Schön. Ic hab jetzt die englischsprachige MS-Seite dazu gefunden, die hat brauchbare Erklärungen (aber auch Fehler wie \\). Die Deutsche Seiten dazu sind völlig unbrauchbar.
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
0

#20 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 16. März 2022 - 08:43

Beitrag anzeigenZitat (CaNNoN: 15. März 2022 - 00:45)

@joe13

das forfiles ist so ein angestaubtes relikt aus windows 98 zeiten.

wmic hat inzw. auch schon staub angesetzt - seit xp dabei und wohl in den neuesten win10/11 dev. builds durch powershell ersetzt, ist aber eines der maechtigsten tools die windows so mitliefert. damit greifst du auf die windows management instrumentation (wmi) zu und kannst somit u.a. auf recht unkomplizierte weise nahezu alle infos auslesen die man so vom windows-rechenknecht bekommen kann - die syntax erscheint manchmal etwas verquert, aber lohnt sich auf jeden fall sich da mal ein wenig einzulesen - respektive die wmi-powershell befehle :-)


Hey CaNNoN, hattest du schon Zeit einmal noch zuschauen wegen meiner Frage?

Dein Script funktioniert tadellos, jedoch würde ich gerne noch ein Echo einbauen.
z.B
Mit deinem Befehl bekomme ich -> 2 Werte zurück
Dafür würde ich dann gern ein ERROR bekommen.

Hast du da noch eine Idee?
0

#21 Mitglied ist offline   CaNNoN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 484
  • Beigetreten: 16. November 05
  • Reputation: 78

geschrieben 16. März 2022 - 13:28

ungefaehr so?

@echo off
wmic datafile where "drive='e:' AND path='\\Profile\\' AND extension='vhdx' AND filesize>'10737418240'" get caption, filesize | find /v "" > tmp.txt 
findstr /m "Caption" tmp.txt >Nul
if %errorlevel%==0 echo ERROR: Folgende Dateien sind groesser als 10GB: && type tmp.txt

if %errorlevel%==1 echo INFO: alle Dateien kleiner als 10GB!



erst muessen wir den output von wmic pipen, ansonsten wird die txt datei nicht in UTF-8 gespeichert, da wmic per default UCS-2 LE BOM verwendet und findstr sonst nicht funktioniert - dann schauen wir mit findstr ob sich "Caption" in der txt datei befindet und je nachdem wird dann ein echo bzw. die tmp.txt ausgegeben.

Dieser Beitrag wurde von CaNNoN bearbeitet: 16. März 2022 - 13:29

0

#22 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 17. März 2022 - 07:33

Beitrag anzeigenZitat (CaNNoN: 16. März 2022 - 13:28)

ungefaehr so?

@echo off
wmic datafile where "drive='e:' AND path='\\Profile\\' AND extension='vhdx' AND filesize>'10737418240'" get caption, filesize | find /v "" > tmp.txt 
findstr /m "Caption" tmp.txt >Nul
if %errorlevel%==0 echo ERROR: Folgende Dateien sind groesser als 10GB: && type tmp.txt

if %errorlevel%==1 echo INFO: alle Dateien kleiner als 10GB!



erst muessen wir den output von wmic pipen, ansonsten wird die txt datei nicht in UTF-8 gespeichert, da wmic per default UCS-2 LE BOM verwendet und findstr sonst nicht funktioniert - dann schauen wir mit findstr ob sich "Caption" in der txt datei befindet und je nachdem wird dann ein echo bzw. die tmp.txt ausgegeben.


JAP genau so ist es perfekt, ich danke dir vielmals :)
Das ist genau was ich suche! :)

Der Beitrag kann geschlossen werden :)
0

#23 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 24. März 2022 - 11:12

Beitrag anzeigenZitat (CaNNoN: 16. März 2022 - 13:28)

ungefaehr so?

@echo off
wmic datafile where "drive='e:' AND path='\\Profile\\' AND extension='vhdx' AND filesize>'10737418240'" get caption, filesize | find /v "" > tmp.txt 
findstr /m "Caption" tmp.txt >Nul
if %errorlevel%==0 echo ERROR: Folgende Dateien sind groesser als 10GB: && type tmp.txt

if %errorlevel%==1 echo INFO: alle Dateien kleiner als 10GB!



erst muessen wir den output von wmic pipen, ansonsten wird die txt datei nicht in UTF-8 gespeichert, da wmic per default UCS-2 LE BOM verwendet und findstr sonst nicht funktioniert - dann schauen wir mit findstr ob sich "Caption" in der txt datei befindet und je nachdem wird dann ein echo bzw. die tmp.txt ausgegeben.




Hey CaNNoN,

leider brauche ich doch noch einmal deine Hilfe.

ICh würde das gerne vom einem anderem Server aus machen

Server 1 => E\Profile => IP: 1.2.3.4
Server 2 => WO DAS SCRIPT LAUFEN SOLL => IP: 1.2.3.3

Kannst du mir da villeicht noch einmal zurhand gehen?
0

#24 Mitglied ist offline   CaNNoN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 484
  • Beigetreten: 16. November 05
  • Reputation: 78

geschrieben 24. März 2022 - 13:30

wmic /NODE:1.2.3.4 datafile where "drive='x:' AND path='\\Profile\\' AND extension='vhdx' AND filesize>'10737418240'" get caption, filesize | find /v "" > tmp.txt



achtung:
auf 1.2.3.4 muss die "windows management instrumentation" (en) bzw. "windows-verwaltungsinstrumentation (WMI)" (de) in der firewall freigegeben sein.
siehe: https://www.windowsp...gurieren-testen
und "drive" sowie "path" muss auf das laufwerk und den pfad vom remote-system (1.2.3.4) abgeaendert werden.

mit UNC pfadangaben (\\1.2.3.4) hab ich das bisher nicht zum laufen bekommen, netzlaufwerke wird auch eher schwierig, weil die fuer gewoehnlich in einem anderen kontext laufen.
0

#25 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 02. August 2022 - 13:31

Hey Cannon,

kannst du mir noch einmal helfen?

Wenn ich das ganze via. Batch laufen lasse, bekomme ich immer ein => Keine Instanzen verfügbar. Ausgegeben

Das mit dem Errorlevel funktioniert da leider nicht

Ich habe einen Testlauf gemacht

Wenn Daten über 10G => Echo Errorlevel
Wenn Daten unter 10G => Echo Errorlevel

Er gibt bei beiden immer den Wert 0 aus, obwohl ich die Dateigröße in der Batch verändert habe.
Kannst du mir da noch einmal helfen?
0

#26 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 04. August 2022 - 06:11

Beitrag anzeigenZitat (CaNNoN: 24. März 2022 - 13:30)

wmic /NODE:1.2.3.4 datafile where "drive='x:' AND path='\\Profile\\' AND extension='vhdx' AND filesize>'10737418240'" get caption, filesize | find /v "" > tmp.txt



achtung:
auf 1.2.3.4 muss die "windows management instrumentation" (en) bzw. "windows-verwaltungsinstrumentation (WMI)" (de) in der firewall freigegeben sein.
siehe: https://www.windowsp...gurieren-testen
und "drive" sowie "path" muss auf das laufwerk und den pfad vom remote-system (1.2.3.4) abgeaendert werden.

mit UNC pfadangaben (\\1.2.3.4) hab ich das bisher nicht zum laufen bekommen, netzlaufwerke wird auch eher schwierig, weil die fuer gewoehnlich in einem anderen kontext laufen.


Hey Cannon,

kannst du mir noch einmal helfen?

Wenn ich das ganze via. Batch laufen lasse, bekomme ich immer ein => Keine Instanzen verfügbar. Ausgegeben

Das mit dem Errorlevel funktioniert da leider nicht

Ich habe einen Testlauf gemacht

Wenn Daten über 10G => Echo Errorlevel
Wenn Daten unter 10G => Echo Errorlevel

Er gibt bei beiden immer den Wert 0 aus, obwohl ich die Dateigröße in der Batch verändert habe.
Kannst du mir da noch einmal helfen?
0

#27 Mitglied ist offline   CaNNoN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 484
  • Beigetreten: 16. November 05
  • Reputation: 78

geschrieben 11. August 2022 - 12:43

was hast du denn genau ausgefuehrt? keine instanzen verfuegbar deutet glaube ich darauf hin, dass er den path nicht finden kann.
0

#28 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 15. August 2022 - 06:50

Beitrag anzeigenZitat (CaNNoN: 11. August 2022 - 12:43)

was hast du denn genau ausgefuehrt? keine instanzen verfuegbar deutet glaube ich darauf hin, dass er den path nicht finden kann.



Ich habe die Batch einfach komplett ausgeführt (auf dem Remote Rechner)
Wenn ich es direkt in die CMD knalle, findet er direkt alles.

Aber wenn ich daraus eine Batch mache, gibt er mir das Errorlevel nicht aus
0

#29 Mitglied ist offline   CaNNoN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 484
  • Beigetreten: 16. November 05
  • Reputation: 78

geschrieben 16. August 2022 - 13:09

versuch mal %%errorlevel%% statt %errorlevel%
0

#30 Mitglied ist offline   easyfone 

  • Gruppe: Mitglieder
  • Beiträge: 19
  • Beigetreten: 07. März 22
  • Reputation: 0

geschrieben 17. August 2022 - 07:04

Beitrag anzeigenZitat (CaNNoN: 16. August 2022 - 13:09)

versuch mal %%errorlevel%% statt %errorlevel%


Das habe ich natürlich direkt ausprobiert :)

C:\>Test_neu_28072022.bat
FileSize
10741612544
10741612544

%errorlevel%

C:\>Test_neu_28072022.bat
Keine Instanzen verfügbar.


%errorlevel%

C:\>

Ich habe einfach die Zahl verändert
Anbei meine Batch


@echo off
wmic /user:XXXXXX\Administrator /password:XXXXXXXX /NODE:192.168.XXX.XXX datafile where "drive='d:' AND path='\\Profile\\' AND filesize>'107374182400'" get "filesize"

rem | find /v "" > tmp.txt

echo %%errorlevel%%


rem if %errorlevel%==0 echo ERROR: Folgende Dateien sind groesser als 10GB: && type tmp.txt

rem if %errorlevel%==1 echo INFO: alle Dateien kleiner als 10GB!
0

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0