ecile87
Goto Top

Zu einer Variablen Hochkommata am Ende hinzufügen

Hallo zusammen,

ich habe folgenden batch-code:


@echo off & setlocal 

set "Datei=%~3"   

set "Z="   
for /f "usebackq skip=2 delims=" %%i in ("%Datei%") do if not defined Z  set "Z=%%i"    
set "H =^" "  
set "Z=%Z%%H%"   
echo %Z%


Ich möchte dem Inhalte der Datei noch ein " hinzufügen und bekomme es einfach nicht hin. Mein Variable H ist hier leer, er speichert in ihr nichts ab!

Wäre dankbar für eure Hilfe!

Grüße

Content-Key: 160936

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

Printed on: April 19, 2024 at 20:04 o'clock

Member: Skyemugen
Skyemugen Feb 16, 2011 at 14:58:47 (UTC)
Goto Top
Aloha,

was macht das Leerzeichen zwischen H und = (Und es ist auch richtig, dass noch ein Leerzeichen hinter dem " gesetzt ist)?

Anders ausgedrückt:
set "H=^""
ergibt
"
als Ausgabe ...

greetz André

edit: @bastla meh, lieber escapen angewöhnen, wo es Text sein soll, als es weglassen und später irgendwo vergessen ;)
edit²: nimm ihm doch nicht seine Variable weg *sniff* das Z fühlt sich doch jetzt so alleine
Member: bastla
bastla Feb 16, 2011 at 15:05:57 (UTC)
Goto Top
... bzw in der Kurzfassung: Verwende
set "H=""
oder auch nur
set H="
wenn Du sicher stellst, dass in dieser Zeile nach dem " nix mehr kommt ...

Wozu übrigens die Variable %H%? So ginge das auch:
set Z=%Z%"
Grüße
bastla

[Edit] @Skyemugen: Aber doch nur escapen, wenn's auch gebraucht wird, sonst wirst Du gar nicht mehr damit fertig ... [/Edit]
Member: ecile87
ecile87 Feb 16, 2011 at 15:24:21 (UTC)
Goto Top
Hallo,

danke für eure schnellen Antworten.
Es funktioniert nun auch das in H das Hochkommata gespeichert wird, allerdings funktioniert es nicht es zu Z am Ende hinzuzufügen. Habe nun die verschiedenen Varianten von euch durchgespielt aber in Z war immer nur der ursprüngliche Pfad. Woran kann das liegen?

Viele Grüße
Mitglied: 60730
60730 Feb 16, 2011 at 15:30:39 (UTC)
Goto Top
moin,

klitschkokleine Gegenfrage:

  • warum das ganze?
  • nur um die Hochkommavariable H zu nennen, die nur einmal und nie wieder gebraucht wird?
siehe Bastlas Einwand und Lösung.

Gruß
Member: ecile87
ecile87 Feb 16, 2011 at 15:36:29 (UTC)
Goto Top
Hallo

ja ich habe H eingeführt weil es ohne nicht funktioniert hat!
Habe mehrfach bastis Lösung ausprobiert aber es funktioniert leider nicht.
in meinem echo steht nur der String den ich vorher in Z speichere ohne "

Gruß
Member: Biber
Biber Feb 16, 2011 at 15:42:24 (UTC)
Goto Top
[OT]
Außerdem, ecile87,

...ich hab auch den anderen im Forum schon millionenmal geschrieben, die sollen nicht immer so schamlos übertreiben.

Zitat von @ecile87:
Es funktioniert nun auch das in H das Hochkommata gespeichert wird,
Niemand kann "das Hochkommata" speichern.

So lobenswert ich es finde, dass du nicht schreibst "das Hochkommas"...

Hier im Forum können sich die Jungs & Mädels stundenlang mit dem Spalten von Haaren und Härchen beschäftigen...

Grüße
Biber
[/OT]
Mitglied: 60730
60730 Feb 16, 2011 at 15:48:03 (UTC)
Goto Top
und machst du es doch mit dem @echo off - wird der T-Mo ganz schnell schroff und Demonstriert, was ohne echo off passiert

C:\>for /f "usebackq skip=2 delims=" %i in ("d:\test.ini") do if not defined Z  set "Z=%i"
C:\>if not defined Z set "Z=Creating archive e:\ftptest\123.zip"
C:\>if not defined Z set "Z=Compressing  Neu Textdokument.txt"
C:\>if not defined Z set "Z=Everything is Ok"

C:\>echo %Z%
Creating archive e:\ftptest\123.zip

C:\>set Z=
C:\>for /f "usebackq skip=2 delims=" %i in ("d:\test.ini") do if not defined Z  set "Z=%i""
C:\>if not defined Z set "Z=Creating archive e:\ftptest\123.zip""
C:\>if not defined Z set "Z=Compressing  Neu Textdokument.txt""
C:\>if not defined Z set "Z=Everything is Ok""

C:\>echo %Z%
Creating archive e:\ftptest\123.zip"
<edit>
[OT]@ Biber: Danke für das Jungs in knapp 6 Wochen feiere ich meinen 30. Jahrestag, als ich meinen ZX-81 auspacken und zusammenschrauben durfte [/OT]
</edit>
Member: ecile87
ecile87 Feb 16, 2011 at 16:01:52 (UTC)
Goto Top
Es tut mir leid dass ich ein Anfänger in Batch bin und im Internet nichts gefunden habe und mich deshalb an euch gewandt habe!

Mach ich die Zeile mit echo off raus, gibt er mir trotzdem aus, dass Z gleich bleibt! Er fügt " nicht hinzu.
Er gibt mir dann dies für die entsprechende Zeile aus:

set Z=STRING
Member: Skyemugen
Skyemugen Feb 16, 2011 at 16:10:07 (UTC)
Goto Top
Aloha Biber!
[OT]
Hochkommas *schauder* ist (sind[?]) umgs. halt nicht gebräuchlich ... wobei mir das Wort Hochkommata vorallem im Plural(!) mit Singularartikel auch noch nicht untergekommen ist aber gut, für mich ist es ein Zollzeichen ^_^ (Anführungszeichen gibt es auf einer Tastatur ja nicht und würden in der Shell auch gar nicht als das erkannt, wofür man Shift+2 einsetzt *g*)

Grüße, André
[/OT]
Member: bastla
bastla Feb 16, 2011 at 16:20:19 (UTC)
Goto Top
Hallo ecile87!

Mal unabhängig von allem anderen Drumherum: Wozu genau soll dieses Hochkomma tda in die Variable?

Im Zweifelsfall würde ich davon ausgehen, dass irgendwann die Variable auch noch mal verwendet wird - und genau dann würde ich dieses "Zollzeichen" drankleben ...

Grüße
bastla

P.S.: Du könntest es aber natürlich (der etwas besseren Nachvollziehbarkeit wegen) T-Mo gleichtun und einfach einmal posten, was bei Dir so nach dem Entfernen des "echo off" auf dem Bildschirm landet (im Zweifelsfall mit einer etwas gekürzten %3-Datei) ...
Mitglied: 60730
60730 Feb 16, 2011 at 16:55:50 (UTC)
Goto Top
(OT)
Hochkomma ist dieses Zeichen ' auch als Apostroph oder wenn's so geschrieben wird - auch als Deppenapostroph bekannt.
Anführungszeichen / Gänsefüße / Zollzeichen? - sind diese „"
Diese Zeichen sind weder verwandt noch verschwägert.
Edit:
Aber kann das (wieauchimmerZeichen) nicht einfach downgeloadet werden? Ich geh mal Hoch zu meiner Omma, die hat noch Nachtspeicheröfen, vielleicht kann die das Zeichen absaven
Ich leg mich wieder hin, sonst muß ich noch Strafzöllezeichen zählen....
(/OT)
Member: Biber
Biber Feb 16, 2011 at 17:04:38 (UTC)
Goto Top
[OT ff] @t-mo
... dennoch ist ebenso unmöglich ein Hochkommata zu speichern wie eine ganze Apostrophe.
..oder ein einzelnes Zöllezeichen...
Hoffentlich haben diese Beiträge bald grüne Häkchen und eine Ende.....
[/OT ff]