muddiirgendwieso
Goto Top

Per echo Text in eine TXT-Datei exportieren (inkl. schwieriger Zeichen

Ich baue gerade ein größeres Skript und bin auf eine kleine Hürde gestoßen. Und zwar will ich folgende Zeile per Batch in eine TXT-Datei gießen:

start https://www.google.com/search?q=%clipboard%%

---
Das Ziel ist, dass das Batchfile u.a. dieses eine TXT-File anlegt.


Nun funktioniert der Export zumindest teilweise, und zwar so:
echo ^start https://www.google.com/search?q=^ >> F:\lala.txt

lala.txt hat hierbei folgenden Inhalt:
start https://www.google.com/search?q=

[b][i]
PROBLEM: Nun fehlt noch der restliche Teil mit der Variablen.
Wenn ich wie folgt zu exportieren, versuche, entsteht gar kein File:

echo ^start https://www.google.com/search?q=%clipboardinhalt%%^ >> F:\lala.txt[/i][/b]

Frage: Weiß jemand, wie ich in die TXT-Datei dies alles hineinbekomme?

Content-ID: 569395

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

Ausgedruckt am: 25.11.2024 um 02:11 Uhr

144144
144144 02.05.2020 um 12:05:12 Uhr
Goto Top
In batch files, the percent sign may be "escaped" by using a double percent sign ( %% ).

Quelle

:wq
NikosLykos
NikosLykos 02.05.2020 aktualisiert um 20:16:09 Uhr
Goto Top
Hallo,

bei mir funktioniert es einfach so:
set search=Teststring
echo start https://www.google.com/search?q=%search% > lala.txt

Inhalt von lala.txt:
start https://www.google.com/search?q=Teststring 


Falls in lala.txt
start https://www.google.com/search?q=%search%
stehen soll, dann:
echo start https://www.google.com/search?q=%%search%% > lala.txt
ricardobohner
ricardobohner 02.05.2020 um 23:17:58 Uhr
Goto Top
Wie würde man es anstellen wenn man nicht weiss wie die Line ist?
https://www.google.com/search?q=%clipboard%%

Gibt es einen weg einfach alle Prozent zeichen zu duplizieren so das die batch datei sie nicht mit einer variablen verwechselt.

Sowas dachte ich aber es funcktioniert nicht:

@echo off
set "Text=start https://www.google.com/search?q=%clipboard%%"  
set Text=%Text:%=%%%
echo %Text%>>lala.txt
TK1987
TK1987 04.05.2020 aktualisiert um 11:14:43 Uhr
Goto Top
Moin,

Zitat von @ricardobohner:
Wie würde man es anstellen wenn man nicht weiss wie die Line ist?
Sowas dachte ich aber es funktioniert nicht:
...
Denkfehler. Wenn du nicht weiß, was in einer Zeile steht, bedeutet das du hast eine separate Datei, die du per For-Schleife einliest und abarbeitest. Auch wenn du zum Testen des Codes nur mit einer Zeile arbeiten willst, kannst du diese nicht einfach mit Set setzen - das ist nicht das Selbe wie eine Schleifenvariable.

set "Text=start https://www.google.com/search?q=%clipboard%%"  
Hier müssten bereits beim Setzen der Variable die Prozentzeichen verdoppelt werden, andernfalls wird %clipboard% bereits hier aufgelöst. Der Rest kann also gar nicht mehr funktionieren.
Richtig wäre hier also:
set "Text=start https://www.google.com/search?q=%%clipboard%%%%"  

Wenn du eine separate Datei über eine For-Schleife einliest, brauchst du die Prozentzeichen der Inputdatei nicht verdoppeln.
@echo off
for /f "usebackq" %%A in ("C:\Pfad\zur\Input.txt") do (  
	echo start %%A
	) >> "C:\Pfad\zur\Output.txt"  


PS: Für das aktuelle Beispiel würde ich allerdings eher die Suchfunktion des genutzten Browsers verwenden, statt eine Google-Webadresse zu kreieren, die bei der Verwendung bestimmter zeichen immer Probleme bereitet.
firefox.exe -search "Zu suchende Zeichenkette"  
chrome.exe "? Zu suchende Zeichenkette"  
...
Sofern das Programmverzeichnis des jeweiligen Browsers nicht in der Umgebungsvariable Path steht, muss das Programm natürlich mit Pfadangabe aufgerufen werden.

Gruß Thomas
ricardobohner
ricardobohner 08.05.2020 um 02:35:44 Uhr
Goto Top
Vielen Dank für die Erklärungen Thomas.