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

variabl. Dateinamen auslesen und in Batch-Datei an einen String anhängen

Frage Entwicklung Batch & Shell

Mitglied: buxi

buxi (Level 1) - Jetzt verbinden

10.02.2006, aktualisiert 13.02.2006, 19219 Aufrufe, 3 Kommentare

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
Mitglied: Biber
10.02.2006 um 17:02 Uhr
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:

01.
::---snipp BackupStartedByUser.bat---------------------------------------------------------------- 
02.
@echo off & setlocal & Set "NjiPath=Anwendungsdaten\Ahead\Nero BackItUp\Info Files" 
03.
for /F %%i in ('dir /b /A:-d /o:d "%USERPROFILE%\%NjiPath%\*.nji"') do Set "newestNji=%%i" 
04.
backitup.exe /NEW:BACKUP /FILEPATH:"%USERPROFILE%\%NjiPath%\%newestNji%" 
05.
::---snapp BackupStartedByUser.bat -------------------------------------------------------------
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.

01.
::---snipp BackupStartedAsService.bat ------------------------------------------------------------- 
02.
@echo off & setlocal & Set "NjiPath=Anwendungsdaten\Ahead\Nero BackItUp\Info Files" 
03.
Set "ZentralesLogFile=\\server\freigabe\AlleGebackuptenNjis.log" 
04.
for /F %%i in ('dir /b /A:-d /o:d "%USERPROFILE%\%NjiPath%\*.nji"') do Set "newestNji=%%i" 
05.
If exist %zentralesLogFile% find "%username%%newestnji%" %zentralesLogFile% >nul && goto :eof 
06.
backitup.exe /NEW:BACKUP /FILEPATH:"%USERPROFILE%\%NjiPath%\%newestNji%" 
07.
if not ERRORLEVEL 1 echo %username%%newestnji% >>%zentralesLogFile% 
08.
::---snapp BackupStartedAsService.bat----------------------------------------------------------
Soweit die ungetesteten ersten Skizzen.

Schönes Wochenende
Biber
[Edit] Minor Bugfix siehe Posting unten. 13.2.2006 [/Edit]
Bitte warten ..
Mitglied: buxi
13.02.2006 um 18:29 Uhr
Ich werd "eckig" ;-D - - Vielen, vielen Dank Biber für die Anschubprogrammierung --
Nun noch ein klitzekleines Problem in dem BATCH:
1. ::---snipp BackupStartedByUser.bat----------------------------------------------------------------
2. @echo off & setlocal & Set "NjiPath=Anwendungsdaten\Ahead\Nero BackItUp\Info Files"
3. for /F %i in ('dir /b /A:-d /o:d "%USERPROFILE%\%NjiPath%\*.nji"') do Set "newestNji=%%i"
4. backitup.exe /NEW:BACKUP /FILEPATH:"%USERPROFILE%\%NjiPath%\%newestNji%"
5. ::---snapp BackupStartedByUser.bat -------------------------------------------------------------

zu Zeile 2. : i. O. ( Umgebungsvariable ist unter WinXP Tablet-Edition "natürlich " vorhanden )
zu Zeile 3. : der DIR Befehle arbeitet soweit OK
hier der Inhalt wenn ich diesen String aus einer BATCH in dem Verzeichnis laufen lasse
20060802_122432.nji ---> klappt also
zu Zeile 4. : Irgendwie scheint der Parameterwert "newestNji" nicht übernommen zu werden
ich habe mal versucht diesen Wert mit ( Synthax richtig ? )
%newestNji% > newestNji.txt in der Batch in ein File zu schubsen, leider geht das nicht.

Vorsichtshalber zur Fehleranalyse habe ich ein PAUSE hinter jede BATCH-Zeile eingefügt.
- Zeile 2. läuft natürlich
- Zeile 3. der Dir Befehl läuft solo, also gehe ich davon aus, dass es auch in der FOR-Schleife funktionuckelt,
aber hier läuft die BATCH in das LEERE und beendet.
- Zeile 4. läuft in das LEERE innerhalb der BATCH ( oder vorher durch Zeile 3 )
( solo mit dem Aufruf 20060802_122432.nji anstatt %newestNji% geht die Zeile einwandfrei )
Biber, hast Du noch eine Idee ( Parameterübergabe .. )?
Danke jedem schon vorab für einige Infos .
Aber nochmals vielen Dank, das war soweit eine Klasse-Hilfe.

Gruß

Buxi
Bitte warten ..
Mitglied: Biber
13.02.2006 um 19:29 Uhr
Ja, ja, Buxi,
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)
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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
Batch Datei um Windows Update zu löschen (1)

Frage von lordofremixes zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen auslesen und in Code einbauen (10)

Frage von markue zum Thema Batch & Shell ...

Batch & Shell
USB-Stick mit Batch Datei erkennen (8)

Frage von derCreeper zum Thema Batch & Shell ...

Neue Wissensbeiträge
Rechtliche Fragen

Heiseshow, live ab 12 Uhr: Steht die Vorratsdatenspeicherung vor dem Aus?

Tipp von sabines zum Thema Rechtliche Fragen ...

Outlook & Mail

Outlook Probleme nach Juni Updates - KB3203467 ist Schuld

(1)

Information von Deepsys zum Thema Outlook & Mail ...

Microsoft Office

Windows 7, Office 2016 RTM und Updates ohne WSUS

Tipp von chgorges zum Thema Microsoft Office ...

E-Mail

Thunderbird 52 hat Druckprobleme

(3)

Tipp von magicteddy zum Thema E-Mail ...

Heiß diskutierte Inhalte
Server-Hardware
Einem Stromausfall entgegen wirken (28)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

Humor (lol)
Aktuell keine IT Probleme (22)

Frage von lordofremixes zum Thema Humor (lol) ...

Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

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