Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch: Dateien auf Namen vergleichen/ ohneTool

Frage Entwicklung Batch & Shell

Mitglied: cavalera

cavalera (Level 1) - Jetzt verbinden

30.01.2007, aktualisiert 19:24 Uhr, 4641 Aufrufe, 5 Kommentare

Hallo

habe zu meiner Frage in artverwandten Beiträgen nur Verweise auf Tools gefunden,
ich brauche aber eine batch die ich bei jedem meiner Datenbankanwender auf den Rechner packen kann. Diese soll in dem Netz Ordner "Quelle" nach der Datei "Datenbank_1.0.ade" gucken
und das mit dem Lokalen Ordner "Ziel" abgleichen. Ist dort die Datei Datenbank_1.0.ade vorhanden soll er die starten, wenn nicht und die Datei zum Beispiel "Datenbank_0.9.ade" heißt soll die 1.0 vom Netz dort in das Zielverzeichnis kopiert und dann ausgeführt werden.

Also so das der User immer die aktuellste Version der Datei startet.
Ich weiß das ich das auch über das Änderungsdatum machen könnte, nur würde ich das gerne so lösen. Ich habe von Shell programmieren keine Ahnung, deswegen die Frage ob das so gehen würde??
kann ich die Dateien mit der Konvention überhaupt vergleichen, oder sollte man sie lieber Datenbank_001 nennen, zum Beispiel?


Für Hilfe währe ich sehr dankbar.
Mitglied: anding
30.01.2007 um 11:03 Uhr
Ich versuch mich mal, weiß aber nicht ob ich dich richtig verstanden hab, bzw. ob's so elegant ist...

If exist <Pfad>\Datenbank_1.0.ade (call <Pfad>\<Prog>) ELSE GOTO :NICHTDA
exit
:NICHT DA
xcopy <Quelle> <Ziel>
call <Pfad>\<Prog>

so hätte ich jetzt versucht das ganze zu Lösen... Aber hier gibts normalerweise Spzialisten, also wart lieber noch ein wenig... ;)
Bitte warten ..
Mitglied: cavalera
30.01.2007 um 11:13 Uhr
Danke das ist echt super so. Reicht vollkommen
nur weiß die batch ja nicht welche die aktuellste version ist die da liegt. also 1.0 oder 9.1 darf ich da ja nicht angeben. Also wie mach ich das dass der auch guckt, ob meintewegen die letzten drei zeichen kleiner sind, dann kopieren wenn nicht dann so lassen und starten?
Bitte warten ..
Mitglied: Biber
30.01.2007 um 11:27 Uhr
...indem Du irgendwo auf dem (oder einem) Server an einem definierten Ort eine Datei hinterlegst, die den "richtigen" Datenbank-Versionsnamen hat.

Beispiel: Wenn alle Clients auf den ServerABC zugreifen können/dürfen, legst Du dort in einem Verzeichnis ein Unterverzeichnis "CurrentVersion" oder "AktuelleDB" an.
Und dort existiert dann eine einzige Datei, die "Datenbank_0.902d.ade" heißt, 0 byte groß ist und nur von Dir allein geändert werden kann (alle Clients haben nur Leserechte).

Gruß
Biber
Bitte warten ..
Mitglied: cavalera
30.01.2007 um 11:38 Uhr
Das würde ja mit der ADE Datei selbst gehen die heißt ja dann "soundso_v.001" also wenn die genauso heißt wie die aufm Rechner dann starte wenn nich dann xcopy und starte: super versteh ich, danke ;)
Kann man mir noch ne Hilfe empfehlen, ich weiß ja nicht wie das geht, irgendwie muss ich aber ja die Ordnerinhalte vergleichen ohne nen expliziten Dateiname zu nenen, also datei mit endung ade in Netzwerk = datei mit ADe auf D: = ? JA Dann usw...

hätte das Kenzeptionell jetzt so, bloß die Syntax is ja nicht so, also wie guck ich nach einer Datei derer name in einer variablen steht usw?
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DateinameLokal = D:\Ordner\*.ade


If exist \\devwaghad43004\Fehlerrueckmeldung-Zp5\Quelle\DateinameLokal
(call D:\Ordner\DateinameLokal)
ELSE GOTO :NICHTDA

exit

:NICHT DA

xcopy \\devwaghad43004\Fehlerrueckmeldung-Zp5\Quelle\*.ade D:\Ordner\*.ade

call D:\Ordner\*.ade
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Bitte warten ..
Mitglied: Biber
30.01.2007 um 19:24 Uhr
Ich versuch noch mal einen Ansatz, cavalera,

spiel es am besten am CMD-Prompt nach.

Wenn Du eine von mehreren Dateien mit z.b. gleicher Dateiendung aus einem Verzeichnis "wählen" willst und das Kriterium soll sein :"die Neueste" oder "die Älteste", geht es am einfachsten mit Hilfe des Dir-Befehls.

[Am CMD-Prompt:]
for /f %i in ('dir /b /o:d D:\Ordner\*.ade') do @echo %i

...das würde Dir die "Neueste" *.ade-Datei aus D:\Ordner zeigen.

Diese in eine Variable speichern ginge so:
for /f %i in ('dir /b /o:d D:\Ordner\*.ade') do @Set AktuelleADE=%i

...und dann kannst Du mit "if exist \\devwaghad43004\Fehlerrueckmeldung-Zp\Quelle\%AktuelleADE%" prüfen, ob eine gleichnamige auf dem Server ist.

Oder, falls der Server den Ton angibt 8was ich für wahrscheinlicher halte):
for /f %i in ('dir /b /o:d \\devwaghad43004\Fehlerrueckmeldung-Zp\Quelle\*.ade') do @Set AufmServerADE=%i
if not exist D:\ordner\%AufmServerAde% [installiere-Serverversion-auf-Client]

Im Batch jeweils zwei %-Zeichen vor den Zählvariablen, also %%i statt %i.

HTH
Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Vergleichen Name u Vorname mit Active Directory (5)

Frage von pixel0815 zum Thema Batch & Shell ...

Batch & Shell
gelöst (Batch) Nummern vergleichen (3)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: alle Ordner mit einem bestimmten Namen kopieren (4)

Frage von Remsboys zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...