Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 10527 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Via Batch Zeichen in Textzeilen einfügen (3)

Frage von LuceDeCiello zum Thema Batch & Shell ...

Batch & Shell
Dateien umbenennen - ersten Zeichen entfernen (4)

Frage von jan999 zum Thema Batch & Shell ...

Voice over IP
Freeswitch Sammelrufnummer besetzt zeichen (1)

Frage von frephisten zum Thema Voice over IP ...

Entwicklung
C sharp Übergabeparameter aus Liste wählbar machen (2)

Frage von MartinAD zum Thema Entwicklung ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...