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

(DOS-Batch) Ein kaufmännisches Und-Zeichen in den Übergabeparametern

Frage Entwicklung Batch & Shell

Mitglied: Destry

Destry (Level 1) - Jetzt verbinden

10.03.2009, aktualisiert 12:53 Uhr, 10213 Aufrufe, 8 Kommentare

Hallo allerseits,

ich bekomme von einem Programm zwei Dateinamen, getrennt durch *, geliefert.
Ein Weiterverabeitung soll durch eine DOS-Batch-Datei erfolgen.

Wenn nun in den Dateinamen ein "&" drin ist, geht die Parameterübergabe an die Batchdatei schief.

Beispiel: Tu_was.bat Erste_Datei.txt*Zweite&letzte_Datei.txt

In der Batchdatei sollen die Parameter mit %1 und %2 aufgelöst werden. Doch der zweite Parameter wird vor dem "&" abgeschnitten und verstümmelt.
Ich kann die Übergabeparameter nicht in Hochkommatas stellen, was normalerweise helfen würde. Darauf habe ich keinen Einfluss.
Die Auflösung von %* bringt auch nur "Erste_Datei.txt*Zweite".

Habt Ihr eine Idee ob man da was machen kann?

Gruss,
Destry
Mitglied: miniversum
10.03.2009 um 14:16 Uhr
Wenn du keinen Einfluss auf diese Ausgabe (in Hochkomma) hast kansn tdu dann wenigstens diese Ausgabe in eine Datei umleiten?
Diese datei könntest du dann in der Batch wieder einlesen und anschließend löchen lassen. So würde sie nur temponär existieren und das & wäre kein Problem.
Das ist das einzige was mir so spontan dazu einfällt jetzt.
Bitte warten ..
Mitglied: Destry
10.03.2009 um 14:25 Uhr
Danke für den Tipp, aber geht leider nicht.
Die Übergabe ist sehr eingeengt. Genauer gesagt sieht sie so aus:

%F %H

%F steht für die Quelldatei. %H steht für die Zieldatei.
Ich kann dabei zwar eigene Zeichen setzen, wie: %F*%H, aber leider keine Hochkommatas.
Also: "%F"*"%H" oder "%F*%H" führt dazu das gar keine Parameter mehr übergeben werden.
Was geht wäre: '%F'*'%H'. Aber damit ändert sich nichts bei der Batch. Nur ' reicht nicht.

Danke für den Versuch.

Gruss,
Destry
Bitte warten ..
Mitglied: miniversum
10.03.2009 um 18:16 Uhr
Dann wäre da noch die möglichkeit die datei zuerst umbenenne bzw. in einen andernnamen zu kopieren und diese dann zu benutzen.
Bitte warten ..
Mitglied: Destry
11.03.2009 um 10:07 Uhr
Leider nein.

Die Dateinamen werden von den Nutzern vorgegeben. Die kann ich nicht selber anpassen.
Dann habe ich wohl Pech gehabt.
Aber danke dafür.

Gruss,
Destry
Bitte warten ..
Mitglied: miniversum
11.03.2009 um 12:23 Uhr
Werden diese Dateien den erzeugt? Kannst du also davon ausgehen das sie in einem Verzeichnis liegen und z.B. die einzigen sind (bzw.die einzigen mit der endung txt)? Dann könnte man das so dort rausfiltern.
Bitte warten ..
Mitglied: Destry
11.03.2009 um 12:34 Uhr
Ich denke ich weiss worauf Du hinaus willst.
Ja, diese Dateien werden in einem ganz bestimmten Verzeichnis erzeugt und nein, sie sind nicht die einzigen. Es können dort beliebig viele liegen.

Wenn ich dem "Erzeuger-Programm" mein Programm automatisch folgen lasse, habe ich den Vorteil die erzeugten Dateien direkt nacheinander bearbeiten zu können.

Wenn ich das Verzeichnis auf erzeugte Dateien prüfe muss ich halt einen ganz anderen Ansatz verfolgen. Grundsätzlich würde das aber auch gehen.

Danke fürs Mitdenken.

Gruss,
Destry
Bitte warten ..
Mitglied: miniversum
11.03.2009 um 18:58 Uhr
Na du weist ja wie die erste Datei heißt (Erste_Datei.txt) und du kennst den anfang der zweiten datei. Die könntest du ja dann vielleicht so ermitteln:
FOR /F "tokens=1,2 delims=*" %%i in (echo %~1) do "set erste=%%i" & set "zweite=%%j"
FOR /F "delims=" %%i in ('dir /x /b %zweite%*.txt"') do set "zweite=%%i"
Ist halt nur ne ungetestete idee...
Bitte warten ..
Mitglied: Destry
12.03.2009 um 00:12 Uhr
Leider weiß ich nicht wie Datei heißt. Der Name "Erste_Datei.txt" war nur ein Beispiel. Die Dateinamen samt Pfad bekomme ich in den Parametern übergeben. Wenn nun im Dateinamen ein "&" steht, wird der Rest rechts vom "&" verstümmelt. Damit fehlt mir dann der komplette Dateiname.

Naja, mal sehen. Mir fiel vorhin noch eine Möglichkeit ein für die ich Deinen Ansatz nutzen kann. Teste ich aber morgen.
Danke für die Vorschläge.

Gruss,
Destry
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst Dos-Box, seltsame(s) Zeichen - Was und woher? (6)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Batch & Shell
gelöst In Batch variable DOS-Funktion von "größer" und "kleiner" Zeichen unterdrücken (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch for f Befehl erkennt doppelte Zeichen als eines (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...