heinertown
Goto Top

Befehl

Befehl soll alle Dateien kleiner als X in Ordner X verschieben

Hallo,

ich möchte in einem Ordner alle Dateien die kleiner als 1KB sind, in einen separaten Ordner verschieben. Wenn ich nun folgenden Befehl über die DOS-Konsole eingebe

for /R D:\log\ %i in (H*) do @if %~zi LSS 1 @Move %~i D:\log\schrott\

werden auch alle Dateien kleiner 1KB verschoben. Speichere ich nun diesen Befehl in einer Datei clean.bat

Inhalt clean.bat:
@echo on
for /R D:\log\ %i in (H*) do @if %~zi LSS 1 @Move %~i D:\log\schrott\

und führe diese aus funktioniert es schon nicht mehr.

Wo liegt mein (Denk)-Fehler?

Gruß und vorab Danke

Content-ID: 38345

Url: https://administrator.de/contentid/38345

Ausgedruckt am: 23.11.2024 um 04:11 Uhr

miniversum
miniversum 23.08.2006 um 18:17:50 Uhr
Goto Top
In ner Batch Datei mach %% statt %.

also:
@echo on
for /R D:\log\ %%i in (H*) do @if %%~zi LSS 1 @Move %%~i D:\log\schrott

miniversum
Biber
Biber 23.08.2006 um 22:50:06 Uhr
Goto Top
Moin HeinerTown,

das Entscheidende hat miniversum schon gepostet.

Die kleineren Denkfehler, die mir noch aufgefallen sind:
@echo on
... würde ich weglasssen. Oder in "@echo off" ändern, wenn ich kein ECHO haben will

for /R D:\log\ %%i in (H*) do @if %%~zi LSS 1 @Move %%~i D:\log\schrott
Nicht ganz..
"LSS 1" heißt nicht "kleiner 1 KB", sondern "kleiner 1 Byte".
Also ändern in "LSS 1024"
Dann sieht der Oneliner so aus:
@for /R D:\log\ %%i in (H*) do @if %%~zi LSS 1024 @move %%~i D:\log\schrott

Ein Verbesserungsvorschlag noch - nicht alles unterhalb von D:\Log durchsuchen und nach D:\log\schrott verschieben.
Das ist unbeabsichtigt rekursiv.
Entweder:
@for /R D:\log\ %%i in (H*) do @if %%~zi LSS 1024 @move %%~i D:\log\schrott\Fastleer_*.*
-oder-
@for /R D:\log\ %%i in (H*) do @if %%~zi LSS 1024 @move %%~i E:\log\schrott

Gruß
Biber
Biber
Biber 02.09.2006 um 13:40:25 Uhr
Goto Top
Gruß und vorab Danke
...von daher denke ich, es kommt nichts mehr...

Ich setze den Beitrag auf "Gelöst".

Biber
P.S. Für alle, die es noch nicht wissen: Ich mag diese "Danke-im-Voraus-Formulierung" nicht.
Heißt in 90% der Fälle: "Ich werde mich nie wieder melden und nicht sagen, ob es geholfen hat".
[Edit 7.8.2007] HeinerTown hat es aber heute pr PN bestätigt: Beitrag ist gelöst.[/Edit]