웹사이트 검색

오류 '<' 연산자는 나중에 사용하기 위해 예약되어 있습니다. (해결됨)


PowerShell용 아날로그 <

Linux에서는 다음 구성을 사용할 수 있습니다.

COMMAND1 < FILE1

이 경우 일반적인 표준 입력 소스인 키보드 대신 FILE1을 입력 소스로 하여 COMMAND1이 실행됩니다.

< 연산자는 표준 입력으로 전달되는 |의 사용에 해당합니다. 예를 들어 다음 명령은 동일합니다.

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

PowerShell의 ./program < input.txt > output.txt 대안

건축을 고려하십시오

./program < input.txt > output.txt

input.txt 파일의 내용이 program 명령의 표준 입력으로 전달되고 프로그램 실행 결과가 프로그램으로 리디렉션됨을 의미합니다. >output.txt 파일. 그러나 위의 명령은 작동하지 않습니다.

PowerShell에서 작동하는 고려된 구성의 아날로그는 다음 명령입니다.

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

또는 PowerShell 스타일 변형을 사용할 수 있습니다.

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