WinFuture-Forum.de: Brauche Hilfe bei einer Batch - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Brauche Hilfe bei einer Batch datei groesse prüfen dann weiter...


#1 Mitglied ist offline   buliwyf 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 05. Februar 19
  • Reputation: 0

geschrieben 05. Februar 2019 - 14:10

Hallo,

ich versuche per batch die datei groesse einer csv datei zu ueberpruefen, was auch funktioniert.
Nur weiter komme ich leider nicht.

ist die datei gleich 0 byte goto ende else......

for /f "tokens=1-3" %i in ('dir C:\BT\angebot\angebot.csv /s /-c ^|find "Datei(en)" ^|find "Bytes"') do set Gesamt=%k
if %Gesamt% == 0 goto ende

else
@echo off
ren angebot.csv angebot_%date:~-10%.csv
c:\mail.exe -smtp server -from [email protected] -to [email protected] -s "csv Datei Angebot" -a c:\BT\angebot\angebot_%date:~-10%.csv

  :ende
exit


funktioniert leider nicht ?

Kann jemand helfen ?

Danke
LG
0

Anzeige



#2 Mitglied ist offline   MasterP82 

  • Gruppe: aktive Mitglieder
  • Beiträge: 221
  • Beigetreten: 30. Juni 12
  • Reputation: 10

geschrieben 05. Februar 2019 - 15:05

wenn ich das richtig verstehe, was du da schreibst, müsst nur die Zeile mit else weg, weil du springst ja kurz davor

EDIT: ansonsten bitte nochmal in ganzen Sätzen schreiben was du möchtest

etwas sortiert:
@echo off
for /f "tokens=1-3" %i in ('dir C:\BT\angebot\angebot.csv /s /-c ^|find "Datei(en)" ^|find "Bytes"') do set Gesamt=%k
if %Gesamt% == 0 exit
ren angebot.csv angebot_%date:~-10%.csv
c:\mail.exe -smtp server -from [email protected] -to [email protected] -s "csv Datei Angebot" -a c:\BT\angebot\angebot_%date:~-10%.csv



Dieser Beitrag wurde von MasterP82 bearbeitet: 05. Februar 2019 - 15:07

0

#3 _Osmodia_

  • Gruppe: Gäste

geschrieben 05. Februar 2019 - 15:26

Richtig, nur das else muss weg.

Wenn du if ... else verwenden willst, muss du runde Klammern verwenden, weil sonst nicht klar ist, was in welchem Fall auszuführen ist. Aber wie gesagt, du brauchst kein else.
0

#4 Mitglied ist offline   buliwyf 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 05. Februar 19
  • Reputation: 0

geschrieben 05. Februar 2019 - 15:29

Hallo,

ok, ich ziehe eine csv datei aus einer db (sql), was nicht wirklich ne Rolle spielt wo die datei nun herkommt.
Diese Datei verschicke ich taeglich per mail (mail.exe), per batch.

Soweit sogut.

Nun moechte ich aber verhindern das wenn diese csv leer ist, also 0 byte hat nicht verschickt wird, und die batch den teil ab
ren angebot.csv......
nicht mehr ausfuehrt und gleich nach der ueberpruefung der dateigroesse, wenn 0 byte, beendet wird.

Ich hoffe ich konnt mich klarer ausdruecken ;-)

danke.
0

#5 _Osmodia_

  • Gruppe: Gäste

geschrieben 05. Februar 2019 - 15:35

Mach das "else" weg, goto erledigt den Rest.
0

#6 Mitglied ist offline   buliwyf 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 05. Februar 19
  • Reputation: 0

geschrieben 05. Februar 2019 - 15:45

nö, funktioniert nicht.

kann syntaktisch an dieser Stelle nicht verarbeitet werden.


Ist das mit den Prozentzeichen hier
if %Gesamt% == 0 goto ende
so richtig?

Irgendwo muss der fehler, syntax maessig stecken ?

danke.
0

#7 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 05. Februar 2019 - 15:56

Probiere
if "%Variable%"=="Wert" goto :Ziel
0

#8 Mitglied ist offline   buliwyf 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 05. Februar 19
  • Reputation: 0

geschrieben 05. Februar 2019 - 16:06

nein, funktioniert nicht.
0

#9 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 05. Februar 2019 - 16:53

Was genau heißt "funktioniert nicht"?

set wert=0

if %wert%==0 echo 0
Ausgabe: 0

if "%wert%"=="0" echo 0
Ausgabe: 0

0

#10 Mitglied ist offline   MasterP82 

  • Gruppe: aktive Mitglieder
  • Beiträge: 221
  • Beigetreten: 30. Juni 12
  • Reputation: 10

geschrieben 06. Februar 2019 - 01:17

in Batch muss bei For-Schleifen immer ein doppeltes % benutzt werden
So sollte es funktionieren:
@echo off
for /f "tokens=1-3" %%i in ('dir C:\BT\angebot\angebot.csv /s /-c ^|find "Datei(en)" ^|find "Bytes"') do set Gesamt=%%k
if %Gesamt% == 0 goto :nicht_schicken
	ren angebot.csv angebot_%date:~-10%.csv
	c:\mail.exe -smtp server -from [email protected] -to [email protected] -s "csv Datei Angebot" -a c:\BT\angebot\angebot_%date:~-10%.csv
:nicht_schicken
exit

0

#11 Mitglied ist offline   buliwyf 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 05. Februar 19
  • Reputation: 0

geschrieben 06. Februar 2019 - 09:09

@MasterP82 Perfect, danke !
funktioniert so tadelos :D


P.S. Muss ich hier irgendwo als geloest markieren ?

Dieser Beitrag wurde von buliwyf bearbeitet: 06. Februar 2019 - 09:15

0

Thema verteilen:


Seite 1 von 1

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