variabl. Dateinamen auslesen und in Batch-Datei an einen String anhängen
variablen Dateinamen aus bekanntem Verzeichnis auslesen in BAT-Datei an String anhängen und diese BAT-Datei dann wieder abspeichern
Hallo zusammen,
hier ein Problem, welches ich nicht lösen kann, da ich noch nicht zur
"Byte-Aristokratie" ;-D gehöre. Für eure Hilfe wäre ich wirklich dankbar.
System: Windows XP Tablet Edition, Win 2000 SP4 ( User haben ADMIN-Rechte )
Es muss auf jedem System eine Batchdatei funktionieren, die Nero BACK IT UP
per BATCH ausführt.
Die Nero-Job-Informationsdatei ist in einem bekannten Verzeichnis und hat
immer die Extension .nji. Der eigentliche Dateiname ist nach JahrMonatTag_Uhrzeit
aufgebaut:
Z.B.:
20060200009_151150.nji
Diese Bezeichnung kann auf jedem System variieren.
--- Hier der Inhalt der vorgefertigten BATCH-DATEI
--- Der String [Dateiname der Job-Informations-Datei].nji
--- soll durch das Auslesen des Verzeichnisses und ermitteln des
--- Dateinamens angehängt werden. Er ist in der BATCH also
--- nicht vorhanden
backitup.exe /NEW:BACKUP /FILEPATH:"C:\Dokumente und
Einstellungen\[Benutzername]\Anwendungsdaten\Ahead\Nero BackItUp\Info Files\[Dateiname der Job-Informations-Datei].nji"
Wie kann ich nun sicherstellen das aus dem Verzeichnis
C:\Dokumente und Einstellungen\[Benutzername]\Anwendungsdaten\Ahead\Nero BackItUp\Info Files\
die jüngste .nji Datei ( im Regelfall sollte nur eine vorhanden sein )
ermittelt werden kann ( erschwerend kommt hinzu, dass in dem Verzeichnis
noch einige .nbi und .txt Dateien existieren ).
Diese jüngste .nji Datei soll dann ausgelesen und an den String
in der BATCH-DATEI angehängt werden.
Diese BATCH-DATEI soll dann wieder abgespeichert werden.
Vielleicht gibt es ja auch einen einfacheren Weg ?
THX für euren Support vorab
Bin allerdings kein VB oder WSH oder C Programmierer
Hallo zusammen,
hier ein Problem, welches ich nicht lösen kann, da ich noch nicht zur
"Byte-Aristokratie" ;-D gehöre. Für eure Hilfe wäre ich wirklich dankbar.
System: Windows XP Tablet Edition, Win 2000 SP4 ( User haben ADMIN-Rechte )
Es muss auf jedem System eine Batchdatei funktionieren, die Nero BACK IT UP
per BATCH ausführt.
Die Nero-Job-Informationsdatei ist in einem bekannten Verzeichnis und hat
immer die Extension .nji. Der eigentliche Dateiname ist nach JahrMonatTag_Uhrzeit
aufgebaut:
Z.B.:
20060200009_151150.nji
Diese Bezeichnung kann auf jedem System variieren.
--- Hier der Inhalt der vorgefertigten BATCH-DATEI
--- Der String [Dateiname der Job-Informations-Datei].nji
--- soll durch das Auslesen des Verzeichnisses und ermitteln des
--- Dateinamens angehängt werden. Er ist in der BATCH also
--- nicht vorhanden
backitup.exe /NEW:BACKUP /FILEPATH:"C:\Dokumente und
Einstellungen\[Benutzername]\Anwendungsdaten\Ahead\Nero BackItUp\Info Files\[Dateiname der Job-Informations-Datei].nji"
Wie kann ich nun sicherstellen das aus dem Verzeichnis
C:\Dokumente und Einstellungen\[Benutzername]\Anwendungsdaten\Ahead\Nero BackItUp\Info Files\
die jüngste .nji Datei ( im Regelfall sollte nur eine vorhanden sein )
ermittelt werden kann ( erschwerend kommt hinzu, dass in dem Verzeichnis
noch einige .nbi und .txt Dateien existieren ).
Diese jüngste .nji Datei soll dann ausgelesen und an den String
in der BATCH-DATEI angehängt werden.
Diese BATCH-DATEI soll dann wieder abgespeichert werden.
Vielleicht gibt es ja auch einen einfacheren Weg ?
THX für euren Support vorab
Bin allerdings kein VB oder WSH oder C Programmierer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 25644
Url: https://administrator.de/forum/variabl-dateinamen-auslesen-und-in-batch-datei-an-einen-string-anhaengen-25644.html
Ausgedruckt am: 29.12.2024 um 10:12 Uhr
3 Kommentare
Neuester Kommentar
Moin buxi,
ich würde diese Anforderung (wenn ich sie denn richtig verstanden habe), mit EINEM (allerdings mehrzeiligen) Batch abfackeln.
Einfachste Variante: ein manuell vom User zu startender Batch:
Vorbemerkung:
Schau mal bitte an den Rechnern, an denen das laufen soll, ob Du am CMD-Prompt bei Eingebe von "SET" eine geeignete Variable findest, in der schon der Pfad "C:\Dokumente.....\[Username]\" hinterlegt ist. Normalerweise heißt die Variable dafür USERPROFILE.
Beispiel: USERPROFILE=C:\Dokumente und Einstellungen\biber
In diesem Fall:
Aber ich würde normalerweise weggehen von diesem manuell zu startenden Batch und eher einen Batch alle x Minuten oder Stunden laufen lassen, der die jeweils jüngte *.nji-Datei sichert, falls dies noch nicht gesichert wurde.
Soweit die ungetesteten ersten Skizzen.
Schönes Wochenende
Biber
[Edit] Minor Bugfix siehe Posting unten. 13.2.2006 [/Edit]
ich würde diese Anforderung (wenn ich sie denn richtig verstanden habe), mit EINEM (allerdings mehrzeiligen) Batch abfackeln.
Einfachste Variante: ein manuell vom User zu startender Batch:
Vorbemerkung:
Schau mal bitte an den Rechnern, an denen das laufen soll, ob Du am CMD-Prompt bei Eingebe von "SET" eine geeignete Variable findest, in der schon der Pfad "C:\Dokumente.....\[Username]\" hinterlegt ist. Normalerweise heißt die Variable dafür USERPROFILE.
Beispiel: USERPROFILE=C:\Dokumente und Einstellungen\biber
In diesem Fall:
::---snipp BackupStartedByUser.bat----------------------------------------------------------------
@echo off & setlocal & Set "NjiPath=Anwendungsdaten\Ahead\Nero BackItUp\Info Files"
for /F %%i in ('dir /b /A:-d /o:d "%USERPROFILE%\%NjiPath%\*.nji"') do Set "newestNji=%%i"
backitup.exe /NEW:BACKUP /FILEPATH:"%USERPROFILE%\%NjiPath%\%newestNji%"
::---snapp BackupStartedByUser.bat -------------------------------------------------------------
::---snipp BackupStartedAsService.bat -------------------------------------------------------------
@echo off & setlocal & Set "NjiPath=Anwendungsdaten\Ahead\Nero BackItUp\Info Files"
Set "ZentralesLogFile=\\server\freigabe\AlleGebackuptenNjis.log"
for /F %%i in ('dir /b /A:-d /o:d "%USERPROFILE%\%NjiPath%\*.nji"') do Set "newestNji=%%i"
If exist %zentralesLogFile% find "%username%%newestnji%" %zentralesLogFile% >nul && goto :eof
backitup.exe /NEW:BACKUP /FILEPATH:"%USERPROFILE%\%NjiPath%\%newestNji%"
if not ERRORLEVEL 1 echo %username%%newestnji% >>%zentralesLogFile%
::---snapp BackupStartedAsService.bat----------------------------------------------------------
Schönes Wochenende
Biber
[Edit] Minor Bugfix siehe Posting unten. 13.2.2006 [/Edit]
Ja, ja, Buxi,
und ich sach noch: "ungetestete Skizze"... *gg
In Zeile 3. habe ich ein einfaches Prozentzeichen statt eines doppelten gepostet
Ich ändere das oben in Schnipsel auf
3. for /F %%i in ('dir /b /A:-d /o:d..... --->RICHTIGER im Batch.
Dann ist es zwar immer noch ungetestet, aber sollte besser laufen.
Grüße Biber
und ich sach noch: "ungetestete Skizze"... *gg
In Zeile 3. habe ich ein einfaches Prozentzeichen statt eines doppelten gepostet
3. for /F %i in ('dir /b /A:-d /o:d ........--->FALSCH (richtig am CMD-Prompt, falsch im Batch)
3. for /F %%i in ('dir /b /A:-d /o:d..... --->RICHTIGER im Batch.
Dann ist es zwar immer noch ungetestet, aber sollte besser laufen.
Grüße Biber