Windows XP Pro
これにより、コンソールに出力が表示されます。
dir | find " free"
これはしません:
tasklist | find "Image Name"
これは:
tasklist | find /C "Image Name"
そして、これは期待される行をファイルに書き込みます:
tasklist | find "Image Name" > foo.txt
何が原因ですか?
Windows XP Pro
これにより、コンソールに出力が表示されます。
dir | find " free"
これはしません:
tasklist | find "Image Name"
これは:
tasklist | find /C "Image Name"
そして、これは期待される行をファイルに書き込みます:
tasklist | find "Image Name" > foo.txt
何が原因ですか?
> tasklist | find "Image Name"
Image Name PID Session Name Session# Mem Usage
ここでは再現できません。2番目のコマンドラインは期待どおりに機能します。4番目のコマンドラインがその行をファイルに書き込むときに混乱が生じることはありません。
検索したときに前の行から検索するために、文字列の先頭にまだスペースが残っていました" free"
か?
findstrはどうですか?やってみました?
C:\test>tasklist | findstr "Image Name"
Image Name PID Session Name Session# Mem Usage
/ Cフラグが特定の行が見つかったことを示した場合、「find」によって返された文字列が何らかの形で削除され(または文字列に特殊文字として)、文字列の末尾のみが表示された可能性がありますか?コマンドラインウィンドウのサイズを変更するとどうなりますか?
修正は次のとおりです。
tasklist | find "3184" | sort
Stack Overflowのおかげで、私はしばらく前にこの質問に対する答えを学びました。(どうやら私はおそらくここで答える代わりにコメントする必要がありますが、私はまだ担当者を持っていません。)リンクを読んでください、しかし要約はtasklist.exeの出力が標準エラーをリダイレクトすることによって修正されるいくつかの非印刷ゴミを持っているということですNULへ:tasklist.exe 2>NUL | find "Image Name"