Սխալ՝ «<» օպերատորը վերապահված է հետագա օգտագործման համար։ (ԼՈՒԾՎԱԾ)
Անալոգային «<» PowerShell-ի համար
Linux-ում կարող եք օգտագործել հետևյալ կառուցվածքը.
COMMAND1 < FILE1
Այս դեպքում, COMMAND1-ը կկատարվի FILE1-ով որպես մուտքագրման աղբյուր՝ ստեղնաշարի փոխարեն, որը սովորական ստանդարտ մուտքային աղբյուր է:
«<» օպերատորը համապատասխանում է «|»-ի օգտագործմանը, որը պետք է փոխանցվի ստանդարտ մուտքագրմանը: Օրինակ, հետևյալ հրամանները նույնական են.
COMMAND1 < FILE1 cat FILE1 | COMMAND1
Փորձելով օգտագործել այս կառուցվածքը PowerShell-ում սխալ է տեղի ունենում:
Օրինակ հրաման
mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql
ավարտվում է հետևյալ հաղորդագրությամբ.
ParserError: Line | 1 | mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql | ~ | The '<' operator is reserved for future use.
Նմանատիպ սխալ 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
Շարահյուսության փոխարեն
COMMAND1 < FILE1
դուք պետք է օգտագործեք հետևյալ կառուցվածքը.
Get-Content FILE1 | COMMAND1
Get-Content cmdlet-ը կկարդա FILE1-ի բովանդակությունը: «|» (խողովակ, փոխակրիչ) խորհրդանիշը նշանակում է բովանդակությունը փոխանցել COMMAND1-ին:
Այսպիսով, փոխարեն
mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql
դուք պետք է օգտագործեք հետևյալ հրամանը.
Get-Content C:\Users\MiAl\Downloads\all-databases.sql | .\mysql -uroot
«./program < input.txt > output.txt» այլընտրանք PowerShell-ի համար
Հաշվի առեք շինարարությունը
./program < input.txt > output.txt
Դա նշանակում է, որ input.txt ֆայլի բովանդակությունը փոխանցվում է «program» հրամանի ստանդարտ մուտքին, իսկ ծրագրի կատարման արդյունքը վերահղվում է դեպի
Դիտարկված շինարարության անալոգը, որը կաշխատի PowerShell-ում, հետևյալ հրամանն է.
Get-Content INPUT.txt | ./program > output.txt
Կամ կարող եք օգտագործել PowerShell ոճի տարբերակը.
Get-Content INPUT.txt | ./program | Out-File output.txt