web-dev-qa-db-ja.com

moreコマンドは「コマンドラインの引数が多すぎます」を返します

Windows 10マシンでmoreコマンドを実行すると"コマンドラインに引数が多すぎます。"ファイル名が渡された場合、ファイルが存在するかどうかに関係なく返されます。

これまでのところ、これは1つのWindows 10 Home 64ビットx64システムでのみ確認されています。

ランニング where more 戻り値 C:\Windows\System32\more.com予想通り。

moreのこの動作は予想されますか?以前のバージョンのWindowsではこれに遭遇したことがありません。

3
MrEricSir

私は自分のシステムで問題を再現しました。私は間違いなくあなたが話していることを見ています...しかし、私はいつもパイプに続いてmoreを使用しているので、これに気づいたことはありません(|)、 このような:

type filename.txt | more

このコマンドは、私のシステムでは問題なく機能します。

5
Joel Coehoorn

これもWindows 10 Enterprise(バージョン1803、ビルド17134.407)で再現できます。 Joel CoehoornとMrEricSirのソリューションが機能することを確認できます。 FWIW、私は/Eオプションは、moreをUNIXフレーバーのように動作させるためです。

私の解決策は入力リダイレクトを使用することでした:

more < cowbell.txt
4
Armadillo Jim

このドキュメントはどこにも見つかりませんが、回避策を見つけました。この特定のケースでは、拡張機能が/Eフラグで有効になっている場合、moreは期待どおりに機能します。

たとえば、次はexample.txtを表示します。

more /E example.txt
4
MrEricSir

これは、more/Eオプションなしで入力ファイルを受信しないためです。 more /?を実行すると、以下の出力が得られます。

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename
command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]
MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

したがって、他の人が言ったように、more /E filecommand | more、またはmore < fileを使用する必要があります。参照 https://ss64.com/nt/more.html

ただし、more fileを実行しても動作する場合がありますが、なぜですか? MSDNのドキュメント を見ると、moreがファイルを直接受信できることがわかります

<Command> | more [/c] [/p] [/s] [/t<N>] [+<N>]
more [[/c] [/p] [/s] [/t<N>] [+<N>]] < [<Drive>:][<Path>]<FileName>
more [/c] [/p] [/s] [/t<N>] [+<N>] [<Files>]

/Eオプションについての言及は1つもありません。したがって、moreはある時点で更新され、ヘルプページはそれに応じて更新されなかったようです

1
phuclv