Projektbezogene Dateien laden |
Willkommen, Gast ( Anmelden | Registrierung )
Projektbezogene Dateien laden |
17.07.2012 - 15:13
Beitrag
#1
|
|
Nachschlagewerk des Orakels Gruppe: Mods Beiträge: 955 Mitglied seit: 29.08.2006 Wohnort: Frankfurt am Main Mitglieds-Nr.: 6.217 |
Zuerst das Großgedruckte:
ACHTUNG, wichtiger Hinweis: Bitte diese Batch-Datei nur verwenden, wenn du genau weißt, was du da machst. Andernfalls können ggf. alle Einstellungen von P5, die in den Dateien "htmledit.ini" und "projekte.ini" im Programmverzeichnis gespeichert sind, verloren gehen. Der Autor übernimmt keinerlei Verantwortung für irgendwelche Folgen, die aus der Verwendung der Batch-Datei resultieren und empfiehlt auch denen, die glauben zu wissen, wass sie da machen, vorher Sicherungskopien aller relevanten Dateien anzulegen. Und jetzt zum Thema: Da ich mich, gerade bei umfangreichen Projekten, schon des öfteren geärgert habe, dass es keine Möglichkeit gibt, die Dateien bezogen auf ein Projekt zu laden und ich deshalb, wenn ich abwechselnd mit mehreren Projekten arbeite (was eigentlich fast immer der Fall ist ), meistens 50 Dateien auf einmal offen habe, die zu verschiedenen Projekten gehören, statt jeweils die 5 bis 10, die aktuell zu einem Projekt gehören, habe ich mir eine Batch-Lösung gebastelt. Diese erlaubt es, die zu öffnenden Dateien je Projekt zu definieren und gleichzeitig vor dem Aufruf von P5 schon das jeweilige Projekt festzulegen. Nicht ganz so schön wie eine programminterne Unterstützung, da zu einem Projektwechsel mit Dateiwechsel immer das Programm beendet werden muss, aber deutlich besser als ganz ohne eine Dateiwechselmöglichkeit. Voraussetzungen
Soweit, so einfach . Das einzige "Problem" ergibt sich noch daraus, dass ggf. in P5 Einstellungen verändert werden und (das ist ja Sinn der Verwendung dieser Batch-Datei) Dateien geöffnet/geschlossen werden. Daher fragt die Batch-Datei nach Beendigung von P5, ob die geöffneten Dateien für das Projekt gespeichert werden sollen (bei positiver Beantwortung werden die Daten in die PD-Datei geschrieben). Zudem wird getrennt nachgefragt, ob die (ggf. geänderten) Einstellungen für Programm und Projekt(e) in die Vorlage-Dateien gespeichert werden sollen. Die Standardantwort (nach 10 Sekunden) für die erste Frage (geöffnete Dateien) ist Ja, für die beiden anderen Fragen Nein (bitte beachten: Die Daten liegen unabhängig von der Antwort nach Beendigung der Batch-Datei immer in den Dateien "htmledit.ini" und "projekte.ini" vor und können von dort ggf. manuell kopiert/gesichert werden - so lange, bis erneut die Batch-Datei aufgerufen und diese Dateien überschrieben werden). Ansonsten ist es zum Start nur notwendig, die Dateien "htmledit.ini" und "projekte.ini" in "htmledit.base.ini" und "projekte.base.ini" umzubenennen, das Verzeichnis "restorefiles" mit den PD-Dateien für alle gewünschten Projekte zu erzeugen und in die PD-Dateien jeweils die Definition des zu öffnenden Projektes einzutragen QUELLTEXT [DefaultProject] (das jeweilige Projekt sollte in "projekte.base.ini" definiert sein). Beim Start öffnet sich P5 dann ohne Dateien, diese können wie gewünscht und zum Projekt passend geöffnet werden. Nach Beenden von P5 muss die Abfrage nach dem Speichern der geöffneten Dateien nur mit Ja beantwortet werden und schon kann die projektbezogene Dateiliste beim nächsten Aufruf ganz einfach wiederhergestellt werden. Alternativ kann man die PD-Dateien natürlich auch direkt mit entsprechenden Dateilisten aus "htmledit.ini" bestücken.DEFAULTPROJECT=foobar So, jetzt wird's nochmal groß: Obwohl ich diese Batch-Datei nach bestem Wissen und Gewissen erstellt und getestet habe, kann ich nicht garantieren, dass sie wirklich alles ganz genau so macht, wie ich es oben beschrieben habe. Deshalb empfehle ich allen Verwendern dringend, vorher selbst zu prüfen, ob die Beschreibung mit der Funktionsweise der Batchdatei übereinstimmt. Ich übernehme weiterhin keinerlei Verantwortung für irgendwelche Folgen, die aus der Verwendung der Batch-Datei resultieren und empfehle nochmals allen, die sie verwenden, vorher Sicherungskopien aller relevanten Dateien anzulegen. CODE @ECHO OFF REM Anzeige ausschalten REM Umgebungsänderungen nur lokal, verzögerte Auswertung aktivieren SETLOCAL ENABLEDELAYEDEXPANSION REM Auswahlmöglichkeiten anzeigen und Dateiname speichern ECHO Welche Dateien sollen geladen werden? SET num=1 SET numlst= SET prj= FOR %%f IN (restorefiles\*.*) DO ( SET prj=%%~nf ECHO [!num!] Projekt !prj! SET numlst=!numlst!!num! SET /A num=!num!+1 ) ECHO [L]etztes Projekt SET /A lstnum=%num% SET numlst=%numlst%L ECHO [A]bbrechen SET /A cncnum=%num%+1 SET numlst=%numlst%A REM Auswahl abfragen CHOICE /M "W„hlen Sie das Projekt ber die Nummer aus oder brechen Sie mit [A] ab." /N /C %numlst% /T 10 /D L SET fil=%ERRORLEVEL% IF %fil% EQU %lstnum% GOTO :CALLP5 IF %fil% EQU %cncnum% GOTO :EOF REM Ausgewählten Dateinamen auslesen SET num=1 FOR %%f IN (restorefiles\*.*) DO ( IF !num!==%fil% SET fil=%%~dpf%%~nxf SET /A num=!num!+1 ) REM Daten übertragen IF EXIST %fil% ( TYPE htmledit.base.ini | FIND /V "RESTOREFILENAMES=" > htmledit.ini TYPE %fil% | FIND "RESTOREFILENAMES=" >> htmledit.ini TYPE projekte.base.ini | FIND /I /V "DEFAULTPROJECT" > projekte.ini TYPE %fil% | FIND /I "DEFAULTPROJECT" >> projekte.ini ) REM Programm aufrufen :CALLP5 CALL htmledit.exe CLS REM Editor-Einstellungen speichern ECHO Editor-Einstellungen in Vorlage speichern? ECHO [J]a ECHO [N]ein CHOICE /N /C JN /T 10 /D N IF NOT ERRORLEVEL 2 TYPE htmledit.ini > htmledit.base.ini REM Projekt-Einstellungen speichern ECHO Projekt-Einstellungen in Vorlage speichern? ECHO [J]a ECHO [N]ein CHOICE /N /C JN /T 10 /D N IF NOT ERRORLEVEL 2 TYPE projekte.ini > projekte.base.ini REM Daten zurückschreiben IF EXIST %fil% ( ECHO Ge”ffnete Dateien fr n„chsten Aufruf von Projekt %prj% speichern? ECHO [J]a ECHO [N]ein CHOICE /N /C JN /T 10 /D J IF ERRORLEVEL 2 GOTO :EOF CALL :GETTEMPNAME TYPE %fil% | FIND /V "RESTOREFILENAMES=" > !tmpfil! TYPE !tmpfil! > %fil% TYPE htmledit.ini | FIND "RESTOREFILENAMES=" >> %fil% DEL !tmpfil! ) REM Programmende GOTO :EOF REM Temporärer Dateiname :GETTEMPNAME SET tmpfil=%TMP%\mytempfile-%RANDOM%-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%%TIME:~9,2%.txt IF EXIST "%tmpfil%" GOTO :GETTEMPNAME GOTO :EOF Kommentare, Verbesserungsvorschläge und Dankesbekundungen nehme ich gerne entgegen . |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 10.11.2024 - 18:58 |