2

小さなアプリケーション用の小さなインストール バッチ ファイルを作成しています (私の app.exe は、Windows のバージョンとアーキテクチャの別の場所にコピーする必要があります)。

私はそれで遊んだが、与えられた課題を解決できない...

私はこのコードを作成しました:(テスト目的で)

If Exist "C:\Users\All Users\ntuser.dat" Goto Win 7
If Exist "C:\Documents and Settings\All Users\ntuser.dat" Goto Win XP

:Win 7

C:\w7\test.txt

:Win XP

C:\wxp\test.txt

しかし、(Windows XPから)バッチファイルを実行すると、両方のジョブが完了します(両方のファイルが開かれます)...なぜ理解できないのですか... win XPセクションコードのみを開く必要があることがわかっています

コードを変更する方法を教えてください。例を教えてください..

私の使命は:

app.exe ファイルを異なる Windows バージョンとビルド (WinXP - X86-X64、Win7 - X86-X64) の異なる場所にコピーしたい

Windows 7x64 x86 または win xp-x86,x64 の場合、特定のシステム用に設定されたコードのみを使用する必要があり、他のシステムでは使用できません。

ありがとうございます

4

2 に答える 2

3

これを試して:

「C:\Users\All Users\ntuser.dat」が存在する場合 Win_7 に移動
「C:\Documents and Settings\All Users\ntuser.dat」が存在する場合 Win_XP に移動

:Win_7

C:\w7\test.txt
goto:eof

:Win_XP

C:\wxp\test.txt
goto:eof
于 2013-06-27T15:46:41.953 に答える
2

そのセクションの終わりに達したときに実行を停止するように指示する必要があります。そうしないと、次のセクションに進み続けます。(ブランチ ラベルにスペースを入れることは、実際には良い考えではありませんが、許可されています。ユーザーには表示されないのに、なぜスペースを使用するのでしょうか?)

If Exist "C:\Users\All Users\ntuser.dat" Goto Win7
If Exist "C:\Documents and Settings\All Users\ntuser.dat" Goto WinXP

:Win7
C:\w7\test.txt
goto :eof

:WinXP
C:\wxp\test.txt
goto :eof

:eofを意味する定義済みのブランチ ラベルですend of fileドキュメントの詳細goto

于 2013-06-27T15:47:52.803 に答える