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, 19113 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...