Ошибка при запуске одной и той же команды power-shell на другом ПК - PullRequest
0 голосов
/ 31 октября 2019

Я выполняю следующую команду.

$ tail -n +2000 text.txt > text.txt.new && mv text.txt.new text.txt

Это работает на моем ноутбуке HP, который использует версию PowerShell Version 5.1.18362.145

Затем я перешел на свою рабочую станциюгде я запускал тот же код, ту же версию PowerShell, но получил эту ошибку

В строке: 1 символ: 41

'+' $ ​​tail -n +2000 text.txt> text.txt.new && mv text.txt.new text.txt

'+' ~~

Маркер '&&' не является допустимым разделителем операторов в этой версии.

'+' CategoryInfo: ParserError: (:) [],

ParentContainsErrorRecordException

'+' FullyQualifiedErrorId: InvalidEndOfLine

Я попробовал другой компьютер и получил ту же ошибку, я также посмотрел версии и не могу понять, почему он работает на моем ноутбуке.

Используя этот код

$ tail -n +2000 text.txt > text.txt.new && mv text.txt.new text.txt

Я пытаюсь удалить 2000 строк из начала текстового файла

Я использовал код Get-Host | Select-Object Version чтобы узнать версии.

Если есть другой способ удалить эти 2000 строк, пожалуйста, дайте мне знать, или если у вас есть решение, почему эта же команда не работает на рабочей станции, пожалуйста, дайте мне знать. (Должна быть однострочная команда)

Ноутбук - Windows 10 Home Edition Версия 1903

Рабочая станция - Windows 10 Pro Версия 1903

Ответы [ 2 ]

1 голос
/ 31 октября 2019

Вы можете использовать Select-Object с переключателем -Skip.

Get-content c:\temp\input.txt | Select-Object -Skip 2000 | Set-Content c:\temp\output.txt
0 голосов
/ 31 октября 2019

Почему у вас есть эта ошибка?

&& в настоящее время не разрешен оператор цепочки в PowerShell (хотя здесь RFC, который будет реализовывать его , и аналогичные операторы цепочки имеютнедавно отправлено в PowerShell 7 Preview 5 ).

Ваша команда будет работать так, как и ожидалось, в командной строке, где && работает так, как вы ожидаете.

В качестве обходного пути у @EyIM есть хорошее решение, но я хотел объяснить сообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...