WinFuture-Forum.de: Leere Ordner finden - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Leere Ordner finden

#16 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 13. Januar 2016 - 08:44

Beitrag anzeigenZitat (DK2000: 12. Januar 2016 - 22:22)

Ja, weil er immernoch falsch geschrieben ist.

Nicht EnableDelayedExtensions, sondern EnableDelayedExpansion, also

Setlocal EnableDelayedExpansion

Jup, dass habe ich auch schon 2x gepostet.
0

Anzeige



#17 Mitglied ist offline   Schwarzbeere 

  • Gruppe: Mitglieder
  • Beiträge: 8
  • Beigetreten: 11. Januar 16
  • Reputation: 0

geschrieben 13. Januar 2016 - 22:19

Ich war anscheinend vollkommen blind :blush:
In meiner Batch selbst habe ich jetzt "setlocal EnableDelayedExpansion" geschrieben.
Danke :)

Das Programm läuft, wenn man die Variablen "int" und "scanneddirectories" in Anführungszeichen oder mit einer 0 hinter der Variable schreibt.
Somit ist der eigentliche Nutzen des Programms erfüllt.
Aber der Hauptteil des Programms gilt der "Prozent-/Ladebar", die dann natürlich nicht funktioniert.
Um dieses Problem zu lösen muss man eine Frage klären:
Wieso hat die Variable "int" einen Wert von "nichts"?
0

#18 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 13. Januar 2016 - 23:43

Vermutlich, weil Dein "int" keine Integer-Variable ist und weil Du sie auch statisch verwendest (%) und nicht dynamisch.

Außerdem tut Dein "CD C:\" nicht das, was Du möchtest. Insbesondere dann, wenn Du grad auf Volume D: unterwegs warst.


Ansonsten bleib ich aber dabei und wie auch Sturmovik ja schon schrieb: es besteht nicht der geringste Grund, irgendein kompliziertes Batch-Script zu bauen, wenn man das auch sehr viel einfacher haben kann.

Richtig einfach, wie erwähnt, via find aus dem findutils-Paket. Ein Einzeiler.

Nicht ganz so einfach, aber immer noch einfach, via Powershell. Da haben Ordner plötzlich die Eigenschaft "ChildItems.Count" (möglicherweise nicht ganz genau unter diesem Namen). Ist das 0, war der Ordner leer.

Oder halt mit Batch, aber dann mit einem Index im Backend und der ernstgemeinten Frage was da ein Datenträger darunterliegt, wenn ein simples find /i "string" Minuten pro Aufruf dauert.

Denn Dein Ansatz birgt die Gefahr, daß Dir der Umgebungsspeicher volläuft. Der ist nicht soo riesig dimensioniert. Was am Ende a) Fehler wirft (mit oder ohne weiteren side effects) oder natürlich b) einfach nix mehr in die Umgebung reinschreibt, sodaß Du die ersten fünf leeren Ordner findest und die restlichen fünfhundert aber nicht.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

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