mari84
Goto Top

If exist abfrage für batchdatei mit mehreren Dateien

Hallo liebe batchprofis,

brauche eine batch die überprüft ob 5 dateien in einem backupordner existieren, falls nicht soll das Programm sich beenden, wenn ja soll 3 von 5 umbenannt werden,.

Hab hier schionmal was für nur eine Datei gefunden.

@echo off

if exist %1 goto umbenennen
echo ERROR: Datei "%1" nicht gefunden!

goto ENDE

:umbenennen
echo die Datei "%1" existiert... - umbenennen kann losgehen:
rename "%1"

:ENDE

passt ja für eine datei aber wie mach ichs für 5

bitte helft einem verzweifelten ;)

Content-ID: 111638

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

Ausgedruckt am: 23.11.2024 um 03:11 Uhr

FISI-Azubi2010
FISI-Azubi2010 17.03.2009 um 13:38:51 Uhr
Goto Top
Hi,

da gibt es mehrere Ansätze die man nehmen kann. Ich persönlich mache bei solchen Sachen eine Dateiliste in einer textdatei die ich dann einfach mit dem Forbefehl abarbeite.


Also:

set "pfad=meinpfadzurdateiliste"
for /F %%i IN (%pfad%) do rename %%i%

Gruß FISI-AZUBI2010
MaRi84
MaRi84 17.03.2009 um 13:43:38 Uhr
Goto Top
Hi Fisi,

set"=x:\backup"

wie sieht dann die for schleife aus ?
kannste mal bitte nen beispiel mit angeben ?
FISI-Azubi2010
FISI-Azubi2010 17.03.2009 um 13:57:17 Uhr
Goto Top
Hi Mari,

also das mit der forschleife ist recht simpel und kannste noch mal detailiert unter for /? auf der Kommandozeile nachlesen.

FOR /F %variable IN (satz) DO Befehl Parameter

du kannst also auch die Dateien direkt als Satz angeben.

wenn du aus einer Datei liest sähe das dann mit deinem Pfad so aus:


set "irgenteinvariablenname=x:\backup"
for /f %variable IN (%dievariablederdudenpfadzugewiesenhast%) do rename %variable%

Die Variable am Anfang und am Ende der Schleife kann beliebig heissen (ist dieselbe Variable), wichtig ist das du die Variable oder den Dateisatz in den Klammern angibst.
Liege ich richtig in der Annahme das dein Backupscript wohl doch etwas umfangreicher werden soll?^^

Gruß FISI-AZUBI2010
MaRi84
MaRi84 17.03.2009 um 14:24:26 Uhr
Goto Top
Hi,

danke erstmal. Das Problem liegt bei Acronis. Wenn ich die Dateien nur umbenenne, dann macht er aus irgendeinem grund nicht bei 5 weiter in seiner Namensgebung, sonder fängt wieder bei 2 an und überschreibt mir meine eben umbenannten Dateien, also werd ich wohl Prüfen müssen welche Datein grad im ordner sind face-sad
FISI-Azubi2010
FISI-Azubi2010 17.03.2009 um 14:32:25 Uhr
Goto Top
Hi,

ich hab dir doch gesagt das es etwas komplizierter ist ich hatte vor nicht alzulanger Zeit eine ähnliche bzw. die selbe Aufgabe.

Das gibt 2 riesen komplexe Scripte darauf kannste dich schonmal freuen^^

Leg dir ein Testverzeichnis an mach ein Vollbackup und ein paar differentiele. Dann kannste nämlich auch ausprobieren was dein Script macht und was passiert und wie sich das Acronis verhält. Ich glaub es ist so es macht wenn das vollbackup umbenennst nen neues und wenn du ein differentielles umbenennst ab der letzten nummer weiter.

Da musste ne menge Fälle durchprüfen z.B. ob das Backup überhaupt erfolgreich war und so.

Gruß FISI-AZUBI2010
MaRi84
MaRi84 17.03.2009 um 14:42:58 Uhr
Goto Top
hi,

wenn ich meine batch aus dem windows aufrufe bekomm ich immer

"der herausgeber kann nicht verifiziert werden. möchten sie diese software ausführen ?"

dann kann ich halt klicken "ausführen" aber diese meldung soll ja nicht kommen, bekomm ich die weggescripted oder anderes unterbunden ??
FISI-Azubi2010
FISI-Azubi2010 17.03.2009 um 14:49:28 Uhr
Goto Top
HI,

haste nen Vista? Wenn ja musst du ne Ausnahme für die Batch machen also weggescripted kriegste die nicht.

Gruß FISI-AZUBI2010
MaRi84
MaRi84 18.03.2009 um 13:00:51 Uhr
Goto Top
ja ich hab nen trusted zone im internet explorer angelegt schon gehts ;)

folgendes problem hab ich noch. auf einer nas läuft die zeit immer hinterher, pro tag ungefähr ne minute.
jetzt muss ich das per batc korrigieren. Hab 2 Versionen mal gefertigt.

1) ich ruf nen freewareprogramm auf, dass sich dann mit nem Atomuhrzeitserver abgleicht.

@echo of

ECHO.
ECHO Ermittle korrekte Uhrzeit ...
ECHO.


call "C:\Program Files\Allzeit Atomzeit\Atomzeit.exe" /leise


ECHO.
ECHO korrekte Uhrzeit eingestellt ...
ECHO.

ECHO.
ECHO Programmende...
ECHO.

2) ich nutze den net time command

net time /setsntp:ptbtime1.ptb.de
w32tm -once

hat jemand schon erfahrung wie am besten wäre ?ß

gruß
Biber
Biber 18.03.2009 um 13:08:14 Uhr
Goto Top
Moin MaRi94,

bitte lass uns diesen Beitrag hier abschliessen (der scheint ja gelöst zu sein) und bitte NICHT unter der Überschrift "if exist bei mehreren Dateien" nun über automatisierte Zeitsynchronisation diskutieren.

Du kannst gern einen neuen Beitrag eröffnen (vorzugsweise unter "Windows", denn es ist aus meiner Sicht nicht zwingend eine Batchlösung erforderlich.

Und setz bitte diesen Beitrag hier auf "Erledigt".

Danke
Biber
MaRi84
MaRi84 18.03.2009 um 13:40:29 Uhr
Goto Top
Hi,

doch es muss ein batch sein, leider ;(
Biber
Biber 18.03.2009 um 15:15:20 Uhr
Goto Top
Zitat von @MaRi84:
Hi,

doch es muss ein batch sein, leider ;(

Nein, muss es nur, wenn Du diese Synchronisation manuell anstößt.
Es sollen schon NAS erfunden worden sein, die das ohne Extra-Aufforderung machen...

....oder war das nur bei Raumschiff Enterprise ...? *grübel*

Grüße
Biber