Zum Inhalt springen

Problem mit Variabler in Batchdatei


mue

Empfohlene Beiträge

Guten Morgen,

ich habe bei uns im Unternehmen auf einem Win2003-Server einen virtuelle Drucker eingerichtet der alle Druckaufträge in PDF umwandelt und per Mailanhang zurück an den Versender schickt (auf Basis von PDF2SMTP). Das Ganze läuft im Hintergrund über 3 Tools ab, die ihre Daten mittels einer Batchdatei austauschen. Als Dateiname für die generierte PDF-Datei wird dabei der Name des zu druckenden Dokuments genommen.

Nun gibt es das Problem das einige Programme beim Drucken nicht nur den reinen Dokumentname mitsendet, sondern in die Variable des Dokumentnamens gleich noch den gesamten lokalen Pfad mitschicken. Damit ist dann natürlich der Dateoname der PDF-Datei zu lang und das Script wird abgebrochen.

Daher also meine Frage: Kann ich in einer Batchdatei eine Variable aufgrund von bestimmte Zeichen kürzen, so dass zum Beispiel von "C:\Dokumente und Einstellungen\Mustermann\Desktop\test.jpg" nur test.jpg als Variable übrig bleibt?

Danke schonmal (und Sorry für den langen Text, aber ich wollte das Thema komplett geklärt haben)

mue

@admins: Keine Ahnung ob ich das Thema richtig eingeordnet hab, wenn nicht bitte ich um Entschuldigung und Verschiebung des Thema's)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mmh, ich sehe meine Erläuterung war doch nicht ganz schlüssig, also hier mein 2. Erklärungsversuch:

Die Batchdatei erhält von dem Tool Redmon den Name des zu druckenden Dokuments und speichert ihn in die Variable %DOCNAME%. Anhand von %DOCNAME% wird die zugehörige PS-Datei in Ghostscript eingelesen und eine PDF-Datei erzeugt, die dann wieder den gleichen Dateinamen hat wie die Datei die zum Drucker gesendet wurde (%DOCNAME%.pdf). Dies funktioniert auch gut, solange das Programm, aus dem gedruckt wurde, wirklich nur den Dateinamen in die Variable legt. Einige Produkte legen aber gleich den ganzen Pfad der Datei mit in diese Variable. Und dann kann es vorkommen das die Variable (und damit der Dateiname der PDF-Datei) zu lang wird und das Script nicht sauber durchläuft. Aus diesem Grund will ich die Variable überprüfen, und wenn der Dateipfad mit in der Variable steht, diesen rauskürzen. Ist das irgendwie möglich?

mue

Link zu diesem Kommentar
Auf anderen Seiten teilen

Möglich ist das...

du kannst mit einer for-Schleife über deinen String iterieren, mit delims ein Trennzeichen (In deinem Fall der \ ) definieren und es so in handliche tokens zerlegen.

Dann musst du nur noch herausfinden welches der tokens das letzte und somit dein Dateiname ist.

Für genauere Anleitungen habbich sowas auch schon zu lange nimmer gemacht, du brauchst ne for Schleife mit der delims= Option, ich denke darüber sollte sich einiges finden lassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...