Ошибки «Оператор "<" зарезервирован для использования в будущем» и «The '<' operator is reserved for future use.» (РЕШЕНО)
Аналог "<" для PowerShell
В Linux можно использовать следующую конструкцию:
КОМАНДА1 < ФАЙЛ1
В этом случае КОМАНДА1 будет выполнена с ФАЙЛ1 в качестве источника ввода вместо клавиатуры, которая является обычным источником стандартного ввода.
Оператор < соответствует использованию | для передачи в программу стандартного ввода. Например, следующие команды являются идентичными:
КОМАНДА1 < ФАЙЛ1 cat ФАЙЛ1 | КОМАНДА1
Попытка использовать этой конструкции в 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 (на русском):
строка:1 знак:14 + mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql + ~ Оператор "<" зарезервирован для использования в будущем. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : RedirectionNotSupported
Вместо синтаксиса
КОМАНДА1 < ФАЙЛ1
нужно использовать следующую конструкцию:
Get-Content ФАЙЛ1 | КОМАНДА1
Командлет Get-Content прочитает содержимое ФАЙЛА1. Символ «|» (труба, конвейер) означает передать содержимое КОМАНДЕ1.
Таким образом, вместо
mysql -uroot < C:\Users\MiAl\Downloads\all-databases.sql
нужно использовать следующую команду:
Get-Content C:\Users\MiAl\Downloads\all-databases.sql | .\mysql -uroot
Смотрите также: Как в PowerShell прочитать содержимое файла (аналог cat)
Аналог «./program < input.txt > output.txt» для PowerShell
Рассмотрим конструкцию
./program < input.txt > output.txt
Она означает, что содержимое файла input.txt передаётся на стандартный ввод команды program, а результат выполнения program сохраняется в файл output.txt. Но показанная выше команда не будет работать.
Аналогом рассмотренной конструкции, который будет работать в PowerShell, является следующая команда:
Get-Content INPUT.txt | ./program > output.txt
Либо можно использовать вариант в стиле PowerShell:
Get-Content INPUT.txt | ./program | Out-File output.txt
Смотрите также: Как в PowerShell сохранить вывод в файл (аналоги > и »)
Связанные статьи:
- Решение проблем с кодировкой вывода в PowerShell и сторонних утилитах, запущенных в PowerShell (88.7%)
- Как в PowerShell сохранить вывод в файл (аналоги > и >>) (84.1%)
- Аналоги cat, tail, head и wc в PowerShell (61.4%)
- Как в PowerShell прочитать содержимое файла. Как сохранить содержимое файла в переменную (61.4%)
- Как мониторить появление новых строк в файле в PowerShell (61.4%)
- Устранение неполадок: групповая политика (GPO) не применяется (RANDOM - 4.6%)