2017-09-15 1 views
0

In diesem question, war die AntwortWie kann man einer Variablen einen String aus der Zwischenablage zuweisen und diesen String verwenden, um nach Google zu suchen?

@echo off start "" chrome.exe www.google.com#q=batch

Was # q ist = hier tun? Ich bin neu in Batch-Skripten und ich versuche, eine Zeichenfolge aus der Zwischenablage anstelle des Wortes "Batch" überzugeben.

Ich versuchte powershell -sta "add-type -as System.Windows.Forms; [windows.forms.clipboard]::GetText()" eine Variablen zugewiesen werden und versucht, die Variable in das erste Skript an der Stelle des „Batch“ zu übergeben.

+0

'https://www.google.com/search?q=batch "oder wie oben" www.goog.com le.com # q = batch, wird die Google-Suche mit dem Suchbegriff ** Batch ** verwendet. Da dies deine einzige Frage war und keine Programmierfrage ist, ist es ein Thema für diese Seite. – Compo

+0

Ich habe das Powershell-Tag zu Ihrer Frage hinzugefügt, weil Sie es erwähnt haben, seinen Code gezeigt haben und obwohl cmd.exe an die Zwischenablage senden kann, hat es keine native Möglichkeit, davon abzurufen. – Compo

Antwort

2

Die Google-Such-URL lautet google.com/search?q=. Fügen Sie einfach den Inhalt der Zwischenablage hinzu und fügen Sie ihn der Browseraufforderung hinzu. Mindestens chrome.exe und iexplore.exe erlauben URLs als unbenannte Parameter.

$SearchTearm = [System.Windows.Forms.Clipboard]::GetText() 
$GoogleSearch = "https://www.google.com/search?q=$SearchTerm" 
$Browser = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' 
Start-Process $Browser -ArgumentList $GoogleSearch 

Seit 5 Powershell können Sie Get-Clipboard anstelle der .NET-Funktion verwenden.

+0

Kann nicht notwendig sein, aber abhängig von Zwischenablage Inhalt würde ich eine '[System.Net.WebUtility] :: UrlEncode()' – LotPings

+0

einfügen ** Edit: Sorry, gerade realisiert, sollte ich es in Powershell, nicht Cmd ausführen. ** Ich bekomme einen Fehler: '$ SearchTearm' wird nicht als interner oder externer Befehl, ausführbares Programm oder Batch-Datei erkannt. Und das gleiche für '$ GoogleSearch', '$ Browser', 'Start-Process' .... –

+0

Das funktioniert nicht für mehrere Wortstrings, fürchte ich. –

0

Nicht erforderlich, um den vollständigen Pfadnavigator zu verwenden. Es werden immer Befehle gespeichert.

Condensed (in Powershell 5 min):

Für Chrome:

Start-Process "chrome" -ArgumentList "https://www.google.com/search?q=$(Get-Clipboard)" 

Für Internet Explorer:

Start-Process "iexplore" -ArgumentList "https://www.google.com/search?q=$(Get-Clipboard)" 

Für Rand:

Start-Process "microsoft-edge:https://www.google.com/search?q=$(Get-Clipboard)" 
+0

Da Get-Clipboard ein [Pscx] (https://github.com/Pscx/Pscx) Cmdlet ist, können Sie nicht davon ausgehen, dass es vorhanden ist. – LotPings

+1

Get-Zwischenablage ist in PowerShell enthalten, wie ich erkläre https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-clipboard?view=powershell-5.1 – Esperento57

+0

Vielen Dank für Feedback, es ist komisch meine PSVersion ist '5.1.15063.608' aber' gcm Get-Clipboard' sagt mir Quelle ist 'pscx' Version' 3.2.0.0' – LotPings

Verwandte Themen