You are viewing this post: Best command prompt and powershell difference New
Siehe Thema command prompt and powershell difference
How to Open an Explorer Window from the Command Prompt’s … New Update
05/07/2017 · Note: If you see PowerShell instead of Command Prompt on the Power Users menu, that’s a switch that came about with the Creators Update for Windows 10.It’s very easy to switch back to showing the Command Prompt on the Power Users menu if you want, or you can give PowerShell a try. You can do pretty much everything in PowerShell that you can do in …
Read more
Es gibt alle möglichen Möglichkeiten, ein Eingabeaufforderungsfenster über den Datei-Explorer zu öffnen – und Sie können sogar Befehle direkt in der Adressleiste des Datei-Explorers ausführen – aber wussten Sie, dass es genauso einfach ist, ein Datei-Explorer-Fenster über die Eingabeaufforderung zu öffnen? RELATED: 10 Ways to Open the Command Prompt in Windows 10
Angenommen, Sie befinden sich in der Eingabeaufforderung, arbeiten mit Dateien und Ordnern und möchten im Explorer darauf zugreifen
Anstatt manuell zu ihnen zu navigieren, können Sie mit einem einfachen Befehl dorthin gelangen
Fahren Sie fort und öffnen Sie ein Eingabeaufforderungsfenster, indem Sie Windows+X drücken und „Eingabeaufforderung“ aus dem Menü „Hauptbenutzer“ auswählen das Creators Update für Windows 10
Es ist sehr einfach, wieder zur Anzeige der Eingabeaufforderung im Menü „Hauptbenutzer“ zu wechseln, wenn Sie möchten, oder Sie können PowerShell ausprobieren
Sie können in PowerShell so ziemlich alles tun, was Sie in der Eingabeaufforderung tun können, sowie viele andere nützliche Dinge
Wir werden mit dem Startbefehl arbeiten, also beginnen wir mit einem einfachen Befehl, um ein Datei-Explorer-Fenster für den aktuellen Ordner in der Eingabeaufforderung zu öffnen
Geben Sie an der Eingabeaufforderung einfach Folgendes ein:
start.
Der Punkt wird in der Eingabeaufforderung als Abkürzung für den aktuellen Ordner verwendet, sodass der aktuelle Ordner im Datei-Explorer geöffnet wird
Sie können auch einen doppelten Punkt verwenden, um den übergeordneten Ordner des aktuellen Ordners zu öffnen
Angenommen, Sie haben sich in der Eingabeaufforderung gerade einen Ordner mit dem Namen „Berichte“ angesehen, der sich in einem Verzeichnis mit dem Namen „Projekt A“ befindet
Sie können den folgenden Befehl eingeben, um den Ordner „Projekt A“ im Datei-Explorer zu öffnen, ohne den Ordner „Berichte“ in der Eingabeaufforderung zu verlassen:
start. .
Und mit einem Befehl öffnet sich der Ordner „Projekt A“ im Datei-Explorer
Sie können auch auf dieser Abkürzung mit dem doppelten Punkt aufbauen, indem Sie am Ende einen relativen Pfad hinzufügen
Lassen Sie uns unser Beispiel fortsetzen, indem wir annehmen, dass es auch einen Ordner namens „Sales“ in diesem Ordner „Project A“ gibt
Während Sie sich noch im Ordner „Berichte“ befinden, können Sie den folgenden Befehl eingeben, um den Ordner „Verkäufe“ im Datei-Explorer zu öffnen, ohne den Ordner „Berichte“ in der Eingabeaufforderung zu verlassen.
start. .\Sales
Natürlich können Sie auch den vollständigen Pfad eingeben, um einen beliebigen Ordner auf Ihrem PC zu öffnen:
c:\windows\system32 starten
VERWANDT: So öffnen Sie versteckte Systemordner mit dem Shell-Befehl von Windows
Sie können den Befehl auch zusammen mit einer der integrierten Windows-Umgebungsvariablen oder den neueren Shell:-Operatorstilen verwenden
So könnten Sie beispielsweise den folgenden Befehl eingeben, um den AppData-Ordner des aktuellen Benutzers zu öffnen:
starte %APPDATA%
Oder ein Befehl wie dieser, um den Windows-Startordner zu öffnen:
starthell: start
Anzeige
Windows Powershell vs Command Prompt: What’s The Difference Anyway? New Update
Weitere Informationen zum Thema command prompt and powershell difference
command prompt and powershell difference Einige Bilder im Thema

How do I capture the output into a … – Stack Overflow New
[1] As of PowerShell 7.1, PowerShell knows only strings when communicating with external programs. There is generally no concept of raw byte data in a PowerShell pipeline. If you want raw byte data returned from an external program, you must shell out to cmd.exe /c (Windows) or sh -c (Unix), save to a file there, then read that file in PowerShell.
+ ausführliche Artikel hier sehen
Read more
Hinweis: Der Befehl in der Frage verwendet Start-Process , wodurch die direkte Erfassung der Ausgabe des Zielprogramms verhindert wird
Verwenden Sie im Allgemeinen nicht Start-Process, um Konsolenanwendungen synchron auszuführen – rufen Sie sie einfach direkt auf, wie in jeder Shell
Dadurch bleibt die Anwendung mit den Standard-Streams der aufrufenden Konsole verbunden, sodass ihre Ausgabe durch einfache Zuweisung $output = netdom. .
erfasst werden kann, wie unten beschrieben
Grundsätzlich funktioniert die Erfassung der Ausgabe von externen Programmen genauso wie bei PowerShell-nativ Befehle (Sie möchten vielleicht eine Auffrischung darüber, wie externe Programme ausgeführt werden;
# WICHTIG: #
Beachten Sie, dass $cmdOutput ein Array von Objekten empfängt, wenn
Wenn Sie sicherstellen möchten, dass die Das Ergebnis ist immer ein Array – selbst wenn nur ein Objekt ausgegeben wird, schränken Sie die Variable als Array ein oder packen Sie den Befehl in @() , den Array-Unterausdrucksoperator):
[array] $cmdOutput =
Wenn Sie hingegen möchten, dass $cmdOutput immer einen einzelnen – möglicherweise mehrzeiligen – String erhält, verwenden Sie Out-String , beachten Sie jedoch, dass immer ein abschließender Zeilenumbruch hinzugefügt wird (GitHub Issue #14444 behandelt dieses problematische Verhalten):
# Hinweis: Fügt einen abschließenden Zeilenumbruch hinzu
$cmdOutput =
Bei Aufrufen externer Programme – die in PowerShell per Definition immer nur Strings zurückgeben[1] – können Sie das umgehen, indem Sie stattdessen den Operator -join verwenden:
# KEIN abschließender Zeilenumbruch
$cmdOutput = (
Hinweis: Der Einfachheit halber wird oben “`n” verwendet, um Zeilenumbrüche im Unix-Stil zu erstellen, die nur LF enthalten, was PowerShell gerne auf allen Plattformen akzeptiert
Wenn Sie plattformgerechte Zeilenumbrüche benötigen (CRLF unter Windows, LF unter Unix), verwenden Sie stattdessen [Environment]::NewLine.
Um die Ausgabe in einer Variablen zu erfassen und auf dem Bildschirm auszugeben:
Wenn
-OutVariable / -ov :
Beachten Sie, dass bei -OutVariable anders als in den anderen Szenarien $cmdOutput immer eine Collection ist, auch wenn nur ein Objekt ausgegeben wird
Insbesondere wird eine Instanz des Array-ähnlichen Typs [System.Collections.ArrayList] zurückgegeben
Eine Diskussion dieser Diskrepanz finden Sie in diesem GitHub-Problem
Um die Ausgabe mehrerer Befehle zu erfassen, verwenden Sie entweder einen Unterausdruck ( $(.
.) ) oder einen Skriptblock ( {. .
} ) mit & oder aufrufen
:
$cmdOutput = $(
$cmdAusgabe =
{
– kein untergeordneter Bereich
Beachten Sie, dass die allgemeine Notwendigkeit, einem einzelnen Befehl, dessen Name/Pfad in Anführungszeichen steht, ein & (den Aufrufoperator) voranzustellen – z gilt für PowerShell-Skripts), ist jedoch eine Syntaxanforderung: PowerShell analysiert eine Anweisung, die mit einer Zeichenfolge in Anführungszeichen beginnt, standardmäßig im Ausdrucksmodus, während der Argumentmodus zum Aufrufen von Befehlen (Cmdlets, externe Programme, Funktionen, Aliase) erforderlich ist & stellt sicher.
Der Hauptunterschied zwischen $(…) und & {. .
} /
{. .
} ist, dass Ersteres alle Eingaben im Speicher sammelt, bevor es als Ganzes zurückgegeben wird, während Letzteres die Ausgabe streamt, was für eine Pipeline-Verarbeitung nacheinander geeignet ist
Umleitungen funktionieren im Grunde genommen auch gleich (aber siehe Vorbehalte unter):
$cmdOutput =
Bei externen Befehlen funktioniert jedoch Folgendes eher wie erwartet:
$cmdOutput = cmd /c
Spezielle Überlegungen zu externen Programmen:
Da externe Programme außerhalb des Typsystems von PowerShell operieren, geben sie immer nur Strings über ihren Erfolgsstrom (stdout) zurück; Ebenso sendet PowerShell immer nur Strings über die Pipeline an externe Programme
[1] Probleme mit der Zeichencodierung können daher auftreten: Beim Senden von Daten über die Pipeline an externe Programme verwendet PowerShell die in der Preference-Variable $OutVariable gespeicherte Codierung; die in Windows PowerShell standardmäßig auf ASCII(!) und in PowerShell [Core] auf UTF-8 eingestellt ist
Beim Empfangen von Daten von einem externen Programm verwendet PowerShell die in [Console]::OutputEncoding gespeicherte Codierung, um die Daten zu decodieren, die in beiden PowerShell-Editionen standardmäßig die aktive OEM-Codepage des Systems verwendet
Weitere Informationen finden Sie in dieser Antwort
Diese Antwort behandelt die Windows 10-Funktion, die sich noch in der Beta befindet (zum Zeitpunkt dieses Schreibens), mit der Sie UTF-8 systemweit sowohl als ANSI- als auch als OEM-Codepage festlegen können
Wenn die Ausgabe mehr als eine Zeile enthält, PowerShell spaltet es standardmäßig in ein Array von Strings auf
Genauer gesagt werden die Ausgabezeilen in einem Array vom Typ [System.Object[]] gespeichert, dessen Elemente Zeichenfolgen sind ( [System.String] )
Wenn Sie möchten, dass die Ausgabe eine einzelne, möglicherweise mehrzeilige Zeichenfolge ist, verwenden Sie der Operator -join (Sie können alternativ eine Pipeline an Out-String leiten, aber das fügt ausnahmslos einen abschließenden Zeilenumbruch hinzu):
$cmdOutput = (
Das Zusammenführen von stderr in stdout mit 2>&1 , um es auch als Teil des Erfolgsstroms zu erfassen, ist mit Einschränkungen verbunden : Um dies an der Quelle zu tun, lassen Sie cmd.exe die Umleitung behandeln, indem Sie die folgenden Redewendungen verwenden (funktioniert analog mit sh auf Unix-ähnlichen Plattformen):
$cmdOutput = cmd /c
$cmdOutput = (cmd /c
Beachten Sie die einfachen Anführungszeichen um 2>&1 , die sicherstellen, dass die Umleitung an cmd.exe übergeben und nicht von PowerShell interpretiert wird
Beachten Sie, dass die Einbeziehung von cmd.exe bedeutet, dass seine Regeln zum Escapezeichen und Erweitern von Umgebungsvariablen standardmäßig zusätzlich zu den eigenen Anforderungen von PowerShell ins Spiel kommen
In PS v3+ können Sie den speziellen Parameter –% (das sogenannte Stop-Parsing-Symbol) verwenden, um die Interpretation der verbleibenden Parameter durch PowerShell zu deaktivieren, mit Ausnahme von Referenzen auf Umgebungsvariablen im Stil von cmd.exe wie %PATH%
Beachten Sie, dass Sie, da Sie bei diesem Ansatz stdout und stderr an der Quelle zusammenführen, in PowerShell nicht zwischen von stdout stammenden und von stderr stammenden Zeilen unterscheiden können
Wenn Sie diese Unterscheidung benötigen, verwenden Sie die PowerShell-eigene 2>&1-Umleitung – siehe unten
Verwenden Sie die 2>&1-Umleitung von PowerShell, um zu erfahren, welche Zeilen aus welchem Stream stammen: Die Stderr-Ausgabe wird als Fehlerdatensätze ( [System.Management.Automation.ErrorRecord] ) erfasst, nicht als Zeichenfolgen, sodass das Ausgabearray möglicherweise eine Mischung aus Zeichenfolgen enthält (jede Zeichenfolge die eine stdout-Zeile darstellen) und Fehleraufzeichnungen (jede Aufzeichnung repräsentiert eine stderr-Zeile)
Beachten Sie, dass, wie von 2>&1 angefordert, sowohl die Zeichenfolgen als auch die Fehlerdatensätze über den Erfolgsausgabestrom von PowerShell empfangen werden)
Hinweis: Folgendes gilt nur für Windows PowerShell – diese Probleme wurden in PowerShell [Core] v6+ behoben, obwohl die unten gezeigte Filtertechnik nach Objekttyp ( $_ -is [System.Management.Automation.ErrorRecord] ) ebenfalls nützlich sein kann dort
In der Konsole werden die Fehlerdatensätze rot gedruckt, und der erste erzeugt standardmäßig eine mehrzeilige Anzeige im gleichen Format, das der nicht beendende Fehler eines Cmdlets anzeigen würde; Nachfolgende Fehleraufzeichnungen werden ebenfalls rot gedruckt, aber nur ihre Fehlermeldung in einer einzigen Zeile
Bei der Ausgabe an die Konsole kommen die Strings normalerweise zuerst im Ausgabe-Array, gefolgt von den Fehleraufzeichnungen (zumindest bei einer Reihe von stdout/stderr-Zeilen, die “gleichzeitig” ausgegeben werden), aber glücklicherweise, wenn Sie die Ausgabe erfassen , es ist richtig verschachtelt , wobei die gleiche Ausgabereihenfolge verwendet wird, die Sie ohne 2>&1 erhalten würden ; Mit anderen Worten: Bei der Ausgabe an die Konsole spiegelt die erfasste Ausgabe NICHT die Reihenfolge wider, in der die Zeilen stdout und stderr vom externen Befehl generiert wurden
Wenn Sie die gesamte Ausgabe in einer einzigen Zeichenfolge mit Out-String erfassen, fügt PowerShell zusätzliche Zeilen hinzu, da die Zeichenfolgendarstellung eines Fehlerdatensatzes zusätzliche Informationen wie Ort ( At line:..
) und Kategorie ( + CategoryInfo.
); merkwürdigerweise gilt dies nur für den ersten Fehlereintrag
Um dieses Problem zu umgehen, wenden Sie die. ToString()-Methode auf jedes Ausgabeobjekt an, anstatt an Out-String : weiterzuleiten
$cmdOutput =
in PS v3+ können Sie vereinfachen zu:
$cmdOutput =
(Wenn die Ausgabe nicht erfasst wird, erzeugt dies als Bonus auch beim Drucken auf der Konsole eine ordnungsgemäß verschachtelte Ausgabe.) Alternativ können Sie die Fehlerdatensätze herausfiltern und sie mit Write-Error an den Fehlerstrom von PowerShell senden (als Bonus, wenn Die Ausgabe wird nicht erfasst, dies erzeugt eine ordnungsgemäß verschachtelte Ausgabe, selbst wenn auf die Konsole gedruckt wird)
$cmdOutput =
Eine Nebenbemerkung zur Übergabe von Argumenten ab PowerShell 7.1:
Das Übergeben von Argumenten an externe Programme ist in Bezug auf Argumente mit leeren Zeichenfolgen und Argumenten, die eingebettete “-Zeichen enthalten, unterbrochen
Außerdem werden die (nicht standardmäßigen) Anführungszeichen von ausführbaren Dateien wie msiexec.exe und Stapeldateien nicht berücksichtigt
Für erstere Problem, möglicherweise kommt ein Fix (obwohl der Fix auf Unix-ähnlichen Plattformen vollständig wäre), wie in dieser Antwort besprochen, in der auch alle aktuellen Probleme und Problemumgehungen aufgeführt sind.
Wenn die Installation eines Drittanbieter-Moduls eine Option ist, bietet die ie-Funktion aus dem Native-Modul (Install-Module Native) eine umfassende Lösung.
Difference between Command Prompt and Powershell in Windows 10 Update
Weitere hilfreiche Informationen im Thema anzeigen command prompt and powershell difference
command prompt and powershell difference Einige Bilder im Thema

Weitere Informationen zum Thema anzeigen command prompt and powershell difference
Updating
Dies ist eine Suche zum Thema command prompt and powershell difference
Updating
Sie haben das Thema also beendet command prompt and powershell difference
Articles compiled by Musicsustain.com. See more articles in category: MMO