11

XP Pro SP3 システムで作成した BAT ファイルは、毎回完全に機能します。
別の XP [また Pro SP3] システムにインストールすると、毎回失敗します (「ハングアップ」)。

問題は多段パイプにあることが判明しました。それを分離するために、この最小限の[そして人工的な]テストケースに到達するまで単純化を続けました

    echo. | date | find "/" | find "/" | find "/"

注:date /tユーザーのシステムの一部が XP 以前であるため (したがって、コマンド拡張機能がないため)、最初の 2 つの手順は短縮されません。また、注意深いテストでdateは、MS-DOS 内部DATEコマンドをfind実行しており、"C:\WINDOWS\system32\" にあるバニラの "FIND.EXE, Aug 4 2004, 9216" を実行していることが示されています [そして、" C:\i386\"].

失敗したシステムでは、4 つ以上の | を含むすべてのコマンドが 5 番目のステップでハングします。これは、ここに示すように、プログラムが単純で、処理するテキストの量が非常に少ない場合でも発生します。

昨日、ユーザーのシステムでさらにテストを行ったところ、私が気付いていなかった微妙な点が見つかりました。コマンド プロンプトで [上記] の簡略化したコマンドを入力しました。期待どおりに失敗しました["ハング"]。しかし、他のことをする前に再起動して再試行したとき [ユーザーの通常の操作では決して起こらないケース] にショックを受けました: うまくいきました [つまり、MS-DOS DATE コマンドの出力が期待どおりに表示されました]。それは再び働いた。その後、3 回目の試行で失敗モードが再表示され、その後は一貫したままでした。
両方のシステムで有効であることを確認しfiles=40、あきらめました。私はまだ興味がありますが、簡単な回避策がある問題を分析する無料のクライアントのための小さなプロジェクトに多くの時間を費やすことはできません.

迅速かつ有用な回答をいただき、ありがとうございます。

元のシステムでは、4 つ以上の | を含むコマンドは、どのプログラムが呼び出され、[妥当な範囲内で] 処理されるテキストの量に関係なく、適切に機能します。

制限が認識されると、多くの簡単な回避策があるため、私の質問は単なる好奇心の問題です。制限がどこから来ているのか、[XP に]制限を引き上げる/排除する設定があるかどうかを誰かが提案できますか?

注: HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun も HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun もどちらのシステムにも存在しません。

また、元の投稿を繰り返し編集してコメントに返信して申し訳ありませんが、どのブラウザーを使用してログインしても、[コメントを追加] ポップアップ [または本来あるべきもの] が表示されません。自分の投稿にコメントを追加するのに評判ポイントは必要ないという私の理解が間違っているのかもしれません。ただし、「コメントをさらに表示」も機能していないことがわかりました。

最後に: このサイトを使用して抱えている問題 [主な症状は、javascript コンソール メッセージ "Uncaught ReferenceError: StackExchange is not defined"] で説明されているものと同じですhttps://meta.stackexchange.com/questions/117730 /stack-overflow-onclick-actions-broken約 1 年前。

4

2 に答える 2

1

^ を使用して、特殊文字の
例のエコーを回避します。^| 日付^| "/" を検索 ^| "/" を検索 ^| 探す "/"

http://www.robvanderwoude.com/escapechars.php

于 2013-03-13T15:08:46.180 に答える
0

時々、レジストリに何かが欠けている場合、それを機能させるために手動で追加する必要があります。または、高度な Windows BAT エディターを入手してください。これにより、バッチ スクリプトの可能性が標準の Windows コマンドなどを超えて拡張されます。これに関しては、実行可能ファイルは機能を拡張するためのエンジンであるため、通常、バッチファイルを追加して exe に変換します。そのほとんどはシェアウェアですが、その仕様に注目してください。この場合、必要なのは、バッチ ファイルを一時ディレクトリに抽出して実行するエンジンを備えた単純なエディターだけです。バッチファイルを難読化するために作成されたものはおそらく必要ありません。

于 2013-03-15T04:40:52.030 に答える