warismoney
Goto Top

Übung zur Lehrabschlussprüfung

Die folgende Aufgabe gilt es zu lösen

Hallo Admins,

morgen habe ich meine Lehrabschlussprüfung und da kommt unter anderem auch eine kleine Batch. Ich habe ein einziges Beispiel bei dem ich nicht weiss wie ich es realisieren soll, ansonsten komm ich mit Batchprogrammierung recht gut zu gange!

"Herr Welte bekommt oft per Email Dateien mit der Endung .PRT welche er direkt zum Drucker an LPT1 senden möchte.

Dazu möchte er einfach einen Doppelklick auf die Datei machen und dann sollte die Datei gedruckt werden.

Als Bestätigung hätte er gerne dass folgende Meldung kommt: "Die Datei xxx.prt wird gedruckt".

Ich hab mir das jetzt so vergestellt dass ich im Explorer -> Ordneroptionen -> Dateitypen einfach anlege dass er .PRT Dateien mit meinem Batch öffnet, dann ist schonmal gesichert dass beim Doppelklick der Datei im Mail automatisch mein Batch gestartet wird.

Jedoch hab ich nicht so wirklich eine Idee mit welchen Befehlen ich das Batch nun umsetzen soll. Mein erster Gedanke ist einfach mit

print /d:LPT1 DATEIORT
echo Die Datei wurde an den Drucker gesendet.

Der Drucker wird bei der Benutzeranmeldung von LPT1 auf einen Netzwerkdruker umgeleitet (net use LPT1: \\druckerpfad) also sollte das dann auch klappen.
Meine jetztige Frage - wenn ich die datei dann automatisch Drucken will - was gebe ich für einen Dateiort an? Normalerweise sollte das ja irgendein Temp ordner sein. Oder muss ich hier dann mit Variabeln arbeiten wie hier:

print /d:LPT1 %fileneme%
echo Die Datei wurde an den Drucker gesendet.

Bin momentan etwas hilflos bei dem Beispiel face-wink

Content-ID: 139403

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

Ausgedruckt am: 25.11.2024 um 23:11 Uhr

Zitruslimmonade
Zitruslimmonade 29.03.2010 um 13:43:54 Uhr
Goto Top
nur so als kleine stichelei... was macht herr Welte wenn er sich mal eine .PRT datei ansehen möchte ? (eine viel elegantere variante hat noch eine abfrage vor dem drucken)
und zu deiner Frage...
Da du ja deine batch irgendwo hast, solltest du nicht nur die datei kennen sondern auch den speicherort. Beides muss deiner batch übergeben werden

Gruss und viel Erfolg
Chris
warismoney
warismoney 29.03.2010 um 13:48:19 Uhr
Goto Top
Naja das mit ansehen oder drucken könnte man mit Paramtern / Sprungbefehl machen. Würde die Prüfer bestimmt beeindrucken, ist aber erst mein Ziel wenn die Grundfunktion gegeben ist, an solchen Spielereien kann ich dann rumwerkeln wenn die Grundfunktion gegeben ist.

Die Batchdatei könnte man ins C:\Windows\System32 legen, wäre vllt. gar nicht so blöd.

Aber glaub mir, manche Beispiele bei der Prüfung ergeben keinen Sinn sondern sind einfach nur dazu da um zu testen ob wir sowas umsetzen könnten, wie ich das Batch jetzt realisieren soll weiss ich aber immer noch nicht face-sad

Danke für deinen Post!
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 13:56:49 Uhr
Goto Top
hihi,
kenn derartige aufgaben zur genüge.. aber herr Welte, da kannst sicher sein, würde verwundert drein schauen, wenn er existieren würde, wenn er sich so ein teil mal ansehen will und es gedruckt wird (vor allem die "lustigen" ppt's von seiner Sekretärin)

also, erstmal wo du die bat hin legst is voll wurscht...
wichtig ist das innerhalb der bat der pfad zur ppt und der name der ppt bekannt ist.
Schau dir erstmal an wie du das erfragen kannst.. wenn du das weist, hast du deine bat schon fertig
warismoney
warismoney 29.03.2010 um 14:00:37 Uhr
Goto Top
Ja ich dachte da erst an den Pfad zum Tempordner weil wenn man die Datei aus OL öffnet liegt sie ja im Temp.

C:\Dokumente&Einstellungen\Profilname\Anwendungsdaten\Temp\dateiname.PRT

NUR - im Temp heisst die Datei ja nicht so wie sie im Anhang heisst, sprich da gibt es immer irgendeine lange undeutliche Wurst.
z.B statt Dok2.doc oder Test.PRT wird dann plötzlich - aöeakdlealdfkejöadf.doc
aqui
aqui 29.03.2010 um 14:26:36 Uhr
Goto Top
Was machst du denn wenn "Herr Welte" stolzer Besitzer eines Apple iMacs ist ??
mrtux
mrtux 29.03.2010 um 14:34:20 Uhr
Goto Top
Hi !

Zitat von @warismoney:
Die Batchdatei könnte man ins C:\Windows\System32 legen, wäre vllt. gar nicht so blöd.

Untersteh dich! Das machst Du an der Prüfung nicht ! Klar?!!! face-smile
Und wehe Du machst sowas später in deinem Berufsleben, dann komme ich persönlich vorbei und nehme dir dein Prüfungsnachweis wieder ab und die Zulassung deiner Prüfer zur Prüfungskommission nehme ich auch gleich noch mit.. face-smile

mrtux
bankaifan
bankaifan 29.03.2010 um 14:40:41 Uhr
Goto Top
Hey Waris,

ich hab mir jetzt den TEMP Ordner noch nicht so genau angeschaut aber ich denke da wird dann wohl immer nur eine .ppt oder .prt oder was weiß ich drinn stehen (sollte das nicht der fall sein kannste ja noch die uhrzeit prüfen). Dann such doch einfach per findstr. noch der dateiendung .schlagmichtot und kopier sie in einen festgelegten namen wie z.b. PRTDRUCK. und diese Datei lässt du dann drucken. Dann weiß du erstens, wo die datei liegt, sie hat nen festen namen und wenn du sie dauerhaft speichern willst fügste einfach in den namen noch datum oder uhrzeit oder i-wie sowas ein.

@mrtux

Warum kommtn von dir immer Kommentare die nix mit dem Thema zu tun ham?

Ich bekomm hier jedesmal n lachkrampf wenn ich auch deine sprüche stoße...

Gruß Bankaifan
mrtux
mrtux 29.03.2010 um 14:44:56 Uhr
Goto Top
Hi !

Zitat von @bankaifan:
@mrtux
Warum kommtn von dir immer Kommentare die nix mit dem Thema zu tun ham?

Wieso hat das nix mit dem Thema zu tun? Er hat das doch genauso geschrieben, oder? Legst Du etwa Batchfiles auch ins System32? Ja? Lernt man das jetzt so? face-smile

mrtux
bankaifan
bankaifan 29.03.2010 um 14:47:45 Uhr
Goto Top
Nein...mach ich nicht xD...ich arbeite aber auch erst seit 2 Tagen intensiv mit Batch...Zeitvertreib auf der Arbeit. Ich hab n festen Ordner wo meine Batches liegen. Und ggf. mach ich dann noch n Batch was direkt im Zielordner liegt und dort weng arbeitet. Aber das tut jetzt wohl wirklich nix zur sache :D
warismoney
warismoney 29.03.2010 um 15:07:25 Uhr
Goto Top
Momentan sieht es bei mir so aus:

print /d:\\windu\LJ3005-tiefbau "C:\Dokumente und Einstellungen\dosc\Lokale Einstellungen\Temp\*.prt"

echo Datei wird gedruckt!

pause

Das ganze würde auch funktionieren, ist vom Code her auch korrekt - aber der Dateiname im TEMP ist immer ein anderer per Zufall generierter und das wird so einfach nichts, man kann dem Batch unmöglich sagen welche Datei aus dem Temp er drucken soll.

Wild, Wild!
miniversum
miniversum 29.03.2010 um 15:10:51 Uhr
Goto Top
Also mal gaanz langsam.
Wenn du dir mal anschaust wie die unterschiedlichen Programmaufrufe für die verschiedenen Dateitypen aussehen wirst du da z.b. sowas finden:
"C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE" "%1"
Das %1 stell dabei den Dateinamen dar. Die " davon und dahinter sind wichtig wenn Leerzeichen im Pfad und Dateinamen vorhanden sind. Das kannst du also so übernehmen. Der Speicherort der Batch ist dann egal.
Der aufruf sieht dann also z.b. so aus:
"C:\Batches\Prt drucken.bat" "%1"
Innerhalb der Batch kannst du dann den Dateinamen mit %1 abrufenwobei es da geschickt ist den mit "%~1" weiter zu verarbeiten.
Das kannst du dann mal testen indem du in deine Batch einfach nur folgende Zeile schreibst:
@echo Drucke: "%~1" & pause

Weitere Hilfe bekomsmt du indem du die cmd startest und dort die Hilfe zum set Befehl und den letzten teil zum For Befehl anschaust (set /? und for /? eingeben.

Sollte Herr Welte übrigens einen Vista oder Windows 7 PC haben funktionier das übrigens nicht ganz mit Explorer -> Ordneroptionen -> Dateitypen
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 15:19:16 Uhr
Goto Top
du (Böse)Wicht face-smile,
der lern effekt is weg...
Und ich geh ja immernoch davon aus das Herr Welte nen MAC hat und ihm ganz schwindelig wird von dem ganzen batch krams face-big-smile
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 15:20:23 Uhr
Goto Top
@mrtux Deine Anmerkung fand ich treffend... und muss mich korrigieren, wo er seine bat hinlegt ist natürlich nicht so ganz wurscht
warismoney
warismoney 29.03.2010 um 15:29:10 Uhr
Goto Top
Also Batch Profi bin ich eindeutig keiner. Die paar Beispiele zuvor sind nicht so wirklich das Problem aber der Herr Welte wills jetzt wirklich wissen ^^


Meine Batch sieht so aus (edit - jetzt funktioniert es auch):

@echo off

print /d:\\windu\LJ3005-tiefbau "%1" >> C:\lokal\log.txt

echo Drucke ""%1"" >> C:\lokal\log.txt

pause


Unter Dateiendungen hab ich .PRT angelegt und die PRT Dateien werden mit meiner Batch (Die im System32 liegt) geöffnet.

Und bekommen tu ich diesen Fehler:


Datei C:\Dokumente wurde nicht gefunden.
Datei und wurde nicht gefunden.
Datei Einstellungen\dosc\Lokale wurde nicht gefunden.
Datei Einstellungen\Temporary wurde nicht gefunden.
Datei Internet wurde nicht gefunden.
Datei Files\OLK8D9\test.prt wurde nicht gefunden.
Drucke ""C:\Dokumente und Einstellungen\dosc\Lokale Einstellungen\Temporary Internet Files\OLK8D9\test.prt""


Dabei wird alles (in diesem Fall die Fehlermeldung xD) in die Logfile im C lokal gelogt.
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 15:32:46 Uhr
Goto Top
!!! leerzeichen in Dos umgebung... !!!
bankaifan
bankaifan 29.03.2010 um 15:37:53 Uhr
Goto Top
Yaya immer diese Bösen Leerzeichen.

Bedenke das er nach jedem Leerschritt denkt es folgt der Dateiname.
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 15:41:29 Uhr
Goto Top
grr... Habt ihr alle keinen Lehr - Auftrag ?
bankaifan
bankaifan 29.03.2010 um 15:45:41 Uhr
Goto Top
Was meinst du mit Lehr-Auftrag?
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 15:54:38 Uhr
Goto Top
Ich hätt ihn gern selber die lösung der Anführungszeichen finden lassen.. wenn er morgen seine Prüfung hat, muss das sitzen... und wenn nich von Haus aus, dann zumindest bei dem Fehler.. Ihm da zu sagen was er machen soll is wenig hilfreich. Zumindest war das bei mir so...
Und Lehr-Auftrag daher... weil man in Bildungseinrichtungen einen Lehr- oder Bildungsauftrag hat... face-wink der dazu anhält Schülern die Dinge beizubringen, und durch Erarbeitung des Problems geht das am schnellsten. face-wink aber wurscht.. vergiss den Kommentar, will ja nich wieder wilde Beschimpfungen provozieren face-smile
warismoney
warismoney 29.03.2010 um 15:59:35 Uhr
Goto Top
Mein Chef hätte es mir ganz sicher beigebracht. Nur der hatte einen Skiunfall und ist jetzt schon seit über einem Monat außer Gefecht.
Ist doch irgendwie auch gut wenn der Lehrling das selbstständig schafft bzw. mit seinen zur Vergügung stehenden Hilfsmittel (wie z.B dieses Forum).

Die Schule - naja das ist so ein Ding, ich hatte alles einsen und dennoch war die Bildung dort eher dürftig und man ist mehr auf sich selbst angewiesen als auf die Schule face-wink

Und mal ehrlich, so einen praktischen Fall wie den von Herr Welte hatten wir noch nie face-wink
bankaifan
bankaifan 29.03.2010 um 15:59:37 Uhr
Goto Top
Du hast rechtIch habs mal weggenommen...wenns ers schon gelesen hat dann muss wenigstens der nächste noch denken... naja...ich bekomm hier ned wirklich lehraufträge...ich bring mir eigentlich alles selbst bei und klar...da lernt man es am schnellsten...aber wenn ich ... weiß ned ob du schonmal mit PL/1 programmiert hast...für mich ne ziemlich nervige programmiersprache... naja...wenn man jetzt 1,5 Arbeitstage am gleichen Problem rätselt dann wird das schon nervig wenn man dann doch wieder nur so n "denkansporn" bekommt^^
warismoney
warismoney 29.03.2010 um 16:03:19 Uhr
Goto Top
Danke Leute, jetzt hat es wirklich geklappt die Datei auszudrucken. Gut dass der liebe Herr Welte kein Interesse an iMAC Computern hat :-P
Ich werd das Ding morgen schon schaukeln, da hab ich eigentlich gar keine Sorge mehr und danke euch bin ich jetzt im Batch auch ein kleines Stückchen sicherer!
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 16:04:06 Uhr
Goto Top
Versteh ich völligst... Ist auch denk ich was anderes als wenn Ihmsen morgen ne Prüfung hat und darüber nich stolpern darf... Da muss ihm dann zumindest der Fehler was sagen...
aber sein wir ehrlich... Manchmal ist man Betriebsblind...
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 16:08:25 Uhr
Goto Top
Na dann viel Erfolg beim patschen face-big-smile...
Immer schön lesen was da steht und nix rein interpretieren (das wahr mein Fehler...)
Ach und sollte folgende Frage kommen:
"In ihrer Abteilung bricht am Rechner Ihres Kollegens ein Feuer aus, wie gehen Sie vor ?"
Antwort:
"Nachdem ich mich vergewissert habe, das sich Mein Kollege nicht verwundet und am Arbeitsplatz befindet. Bewege ich mich ruhig zum nächsten Ausgang und stelle sicher, das der Alarm ausgelöst wurde."

Nichts mit löschen, leben retten oder son kram.
bankaifan
bankaifan 29.03.2010 um 16:08:52 Uhr
Goto Top
Das ist man bei Computern sowieso viel zu oftVor allem so kleinigkeiten wie einfach mal n Semikolon vergessen oder eben Anführungszeichen. Da kann wohl jeder n Liedchen von singen

@warismoney Das ist doch super, dann wünsch ich dir auch gleich mal viel Glück morgen bei deiner Prüfung
Zitruslimmonade
Zitruslimmonade 29.03.2010 um 16:14:46 Uhr
Goto Top
mein favorit... Klammern oder beim "=" und "=="
Xpl0iT
Xpl0iT 08.04.2010 um 15:53:36 Uhr
Goto Top
@echo off
type %1 > LPT1
echo Die Datei wird gedruckt
pause

Explorer -> Ordneroptionen -> Dateitypen *.PRT mit start.bat verknüfpen .. :D


€dit... ups wie bin ich jetzt in den alten thread reingekommen ...... peinlich