Ralat Pengendali '<' dikhaskan untuk kegunaan masa hadapan. (SELESAI)


Analog “<” untuk PowerShell

Di Linux, anda boleh menggunakan binaan berikut:

COMMAND1 < FILE1

Dalam kes ini, COMMAND1 akan dilaksanakan dengan FILE1 sebagai sumber input dan bukannya papan kekunci, yang merupakan sumber input standard biasa.

Pengendali “<” sepadan dengan penggunaan “|” untuk dihantar ke input standard. Sebagai contoh, arahan berikut adalah sama:

COMMAND1 < FILE1
cat FILE1 | COMMAND1

Mencuba menggunakan binaan ini dalam PowerShell menimbulkan ralat.

Contohnya arahan

mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql

berakhir dengan mesej berikut:

ParserError:
Line |
   1 |  mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql
     |               ~
     | The '<' operator is reserved for future use.

Ralat serupa dalam PowerShell 5:

string:1 character:14
+ mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql
+              ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported

Daripada sintaks

COMMAND1 < FILE1

anda perlu menggunakan struktur berikut:

Get-Content FILE1 | COMMAND1

Cmdlet Get-Content akan membaca kandungan FILE1. Simbol “|” (paip, penghantar) bermaksud menghantar kandungan kepada COMMAND1.

Oleh itu, bukannya

mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql

anda perlu menggunakan arahan berikut:

Get-Content C:\Users\MiAl\Downloads\all-databases.sql | .\mysql -uroot

“./program < input.txt > output.txt” alternatif untuk PowerShell

Pertimbangkan pembinaannya

./program < input.txt > output.txt

Ini bermakna kandungan fail input.txt dihantar ke input standard perintah “program” dan hasil pelaksanaan program dialihkan ke output.txt fail. Tetapi arahan di atas tidak akan berfungsi.

Analog pembinaan yang dipertimbangkan, yang akan berfungsi dalam PowerShell, ialah arahan berikut:

Get-Content INPUT.txt | ./program > output.txt

Atau anda boleh menggunakan varian gaya PowerShell:

Get-Content INPUT.txt | ./program | Out-File output.txt