6741
Goto Top

Dateinamen auslesen und in eine Variable schreiben

Hallo,

ich habe auf einer Diskette ( ja sie gibt es noch ) eine Datei, deren Names sich ändert, aber immer eine *.zip Datei ist.

Diesen Dateinamen müsste ich auslesen und in eine Variable setzten.

Die Variable muss ich dann an einen anderen Zielort schreiben ( die Datei ) und dann mit pkunzip so öffnen das diese auch gleich entpackt wird und nicht nur geöffnet aber nicht entpackt ...

hoffe das das verständlich ist ...

gruß

Content-Key: 48348

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

Printed on: April 24, 2024 at 16:04 o'clock

Member: bastla
bastla Jan 09, 2007 at 18:30:35 (UTC)
Goto Top
Hallo firewalldevil!

Wenn es die einzige .zip-Datei auf A: ist, versuch es so:
for %%i in (A:\*.zip) do set "Datei=%%~nxi"  

Grüße
bastla
Mitglied: 6741
6741 Jan 09, 2007 at 18:41:19 (UTC)
Goto Top
werde ich testen, wie kann ich jetzt die Datei mit dem Vari-Namen kopieren ?

Danke dir
Member: bastla
bastla Jan 09, 2007 at 18:49:35 (UTC)
Goto Top
Hallo firewalldevil!

Für das Kopieren alleine bräuchtest Du die Variable überhaupt nicht - es würde ein
copy A:\*.zip D:\Zielverzeichnis
genügen (wenn man davon ausgehen kann, dass das Zielverzeichnis bereits existiert). Wenn Du die Variable einsetzen willst, musst Du
copy "A:\%Datei%" D:\Zielverzeichnis  
verwenden. Die Anführungszeichen sind nur erforderlich, wenn der Dateiname Leerzeichen enthält (schaden aber in den meisten Fällen nicht, kannst Du hier also auf jeden Fall setzen).

Grüße
bastla
Mitglied: 6741
6741 Jan 09, 2007 at 18:55:43 (UTC)
Goto Top
zur Aufklärung ....

ich bekomme eine Diskette mit einem Update, dort befindet sich eine Zip-Datei, deren Name ich nicht kenne bzw sich ändert. Diese muss ich kopieren und dann öffnen.

Also gucke ich mir die Datei an, kopiere sie und öffne dann die Datei.

sollte doch gehen ... oder

Quelle ist immer A:\

Ziel: ist immer \\server\Ordner\programm

Datei sollte auch überschieben werden.

Vorher muss ich noch eine Sicherheitskopie ( alter Daten ) erstellen und ein Hinweis rausgeben, das das Programm bitte geschlossen werden soll.

Gruß und Danke
Member: bastla
bastla Jan 09, 2007 at 21:41:03 (UTC)
Goto Top
Hallo firewalldevil!

Vom Thread-Titel sind wir mit diesen Anforderungen jetzt aber schon relativ weit entfernt ... face-wink
Die vorhergehenden Arbeitsschritte "Informieren" und "Sichern" beeinflussen eigentlich den Ablauf des Updatens nicht, sodass wir bei diesem Thema bleiben können.

Nach Deiner Beschreibung gehe ich davon aus, dass der Update-Vorgang von einem Client aus erfolgen soll. Spricht eigentlich etwas gegen den folgenden, leicht veränderten Ablauf (der aber auch am Server funktionieren würde):
  • zip-Datei von Diskette in ein lokales Update-Verzeichnis kopieren,
  • zip-Datei lokal entpacken,
  • entpackte Dateien (samt zip-Datei) in das Programmverzeichnis am Server kopieren

Da ich nicht weiß, aus wie vielen Dateien oder ev Verzeichnisebenen sich das Update zusammensetzt, ist die folgende Batchdatei auch auf die Verarbeitung von Verzeichnissen ausgelegt:
set UpdVerz="%temp%\UpdateTemp"  
if exist "%UpdVerz%" rd /y /s "%UpdVerz%"  
md "%UpdVerz%"  
copy a:\*.zip "%UpdVerz%"  
pkunzip -d "%UpdVerz%\*.zip" "%UpdVerz%"  
xcopy /y /s "%UpdVerz%\*.*" "\\Server\Ordner\programm\*.*"  

Grüße
bastla
Mitglied: 6741
6741 Jan 10, 2007 at 15:08:46 (UTC)
Goto Top
ich weiß ... ;>))

danke Dir ..

geht gut !