このファイル構造を使用するゲームがあります:
GAME FOLDER
->data
->data->run.bat
GAME FOLDERにrun.bat
へのショートカットを配置したいのですが、移動したり、他の誰かがインストールした場合、ターゲットが間違っているため機能しません。 GAME FOLDERを基準にしてターゲットを「開始」する方法はありますか?
/ bat /フォルダを右クリックして、ショートカットの作成をクリックします。
bat - Shortcut
を取得します。Shortcut to bat
。作成したショートカットを右クリックして、Propertiesをクリックします。
Target(Windows 7のShortcutタブの下)を次のように変更します。
%windir%\system32\cmd.exe /c start "" "%CD%\bat\bat\run.bat"
Start inが空白であることを確認してください。これにより、現在のディレクトリで起動します。
.batへのショートカットの場合はおそらく受け入れられますが、アイコンを変更する場合は、ショートカットのプロパティを再度開き、アイコンの変更...(もう一度、 Windows 7のショートカットタブ)。この時点で、Browse ...アイコンを検索したり、次のように入力してデフォルトのシステムアイコンのリストを表示したりできます。
%SystemRoot%\system32\Shell32.dll
Browse...
ボタンの左側にあり、押す Enter。これはWindows 7およびWindows XPで機能しますが、スタイルの更新によりアイコンが異なります(ただし、認識できるほど類似しています)。ショートカットが存在するWindowsのバージョンによっては、アイコン 意志 時々 それに応じて変更します。
詳細:
最初のTargetコマンドの先頭にある空の二重引用符をよりよく理解するには、 開始プログラムに渡されるパラメーターで「start」コマンドを使用 を参照してください。
マイクロソフトによると、'Start In'
ボックスが空の場合、スクリプトは現在の作業ディレクトリで実行されます。私はこれをWindows 7で試しましたが、うまくいくようです。
Relative (Windowsコマンドラインアプリケーション)を使用してみてください。
基本的に、ショートカットには相対リンクを設定できますが、Windowsには実際にリンクを作成する方法がありません。
システム変数(%MyGameFolder%など)を設定できる場合は、パスとショートカットでそれを使用できます。Windowsは残りのパスを埋めます(つまり、%MyGameFolder%\data\MyGame.exe
)。
これは小さな入門書です 。バッチファイルを介してこの値を設定するか、ショートカットの作成方法を共有する場合はおそらくプログラムで設定できます。
ファイルパスを変更することにより、相対ショートカットを手動で作成できます。最初に、通常のコンテキストメニューで、ファイルのWindowsの新しいショートカットを作成し、プロパティ->ファイルの場所で作成します。
%windir%\Explorer.exe "..\data\run.bat"
leoj3nのソリューション が好きです。また、 start の/ Dパラメータを使用して必要な相対的な「開始」ディレクトリの設定にも使用できます。 cmd の引数として/ cまたは/ kを入力しないと、後続の開始コマンドは実行されません。/cは、コマンドを実行した直後にシェルを閉じ、/ kは(コマンドが実行された後でも)シェルを開いたままにします。したがって、実行しているものが何であれ標準出力にスピットし、それを確認する必要がある場合は、/ kを使用します。
残念ながら、lnkファイル 仕様 によると、アイコンはショートカットに保存されず、「環境変数を使用してエンコードされます。これにより、場所は異なるが表現されているマシン間でアイコンを見つけることができます」環境変数を使用します。」そのため、パスが変更されており、ポイントしている実行可能ファイルからアイコンを取得しようとしている場合、正しく転送されない可能性があります。
ショートカットを作成した後、プロパティで次を設定します。
ターゲット:
%comspec% /k "data\run.bat"
- 落とす
/k
実行後にプロンプトを開いたままにしたくない場合。で開始:
%cd%\data
いくつかの答えを読んだ後、私は簡単な解決策でそれを行うことにしました:ショートカットの代わりに、メインの.batを呼び出す1行だけで.batを作成しました。
私が正しいか、または何かが欠けているかどうかはわかりませんが、今のところ(2016-07-11、Win7 Enterprise SP1を実行しています)新しい場所で走る! USBドライブに新しいショートカットを作成し、ショートカットとそのターゲットを移動して、相対位置が変わらないようにしてから、ドライブ文字を変更しました。どちらの場合もショートカットが機能し、ダブルクリックするとターゲットフィールドが適応されました。
Microsoftは過去のアップデートの1つでこの問題に対処しているようです。
誰かこれを確認してください。
最も簡単な解決策:> 環境変数 便利な小さな生き物。
他の人がそれぞれのシステムドライブ(通常はc :)のどこにでもインストール/解凍する場合。
デモンストレーションの目的で、アプリ「test.exe」(実行可能ファイル/ファイルはexeである必要はありません)を呼び出し、フォルダMYCOMPANY\MYAPP \にインストール/解凍します
次に、%SystemDrive%\ MYCOMPANY\MYAPP\test.exeをターゲットとして使用し、%SystemDrive%\ MYCOMPANY\MYAPP \を開始として使用するショートカットを作成します。
それで、あなたはそれを展開したいと思います。 「WinRAR」などのアプリを使用します。
簡単な方法は、「。exe」としてきちんとパッケージ化された自己解凍Zipファイルを使用することです。ショートカットに1つ、アプリに1つを使用します。さまざまなファイルをさまざまなディレクトリに抽出する1つの自己解凍型Zipファイルを作成する方法がありますが、まだ使用していません。
もう1つの方法は、ショートカットの自己解凍を作成し、アプリの自己解凍に埋め込み、ファイルの保存場所を知っている場合に1回実行スクリプトを適用することです。等.
インストーラーがカスタムインストール/解凍ディレクトリを使用できるようにする場合は、むしろ [〜#〜] nsis [〜#〜] スクリプト可能なインストールシステムをご覧ください。
楽しく遊んで、私の情報が役に立てば幸いです。
Leoj3nのソリューションに対するわずかな改善(コンソールウィンドウを非表示にするため):%windir%\system32\cmd.exe /c start "" "%CD%\bat\bat\run.bat"
を ターゲット: Windowsショートカットのフィールドでは、次を追加することもできます:%windir%\system32\cmd.exe /c "%CD%\bat\bat\run.bat"
AND run.bat
のコマンドの前にstart
を追加するこれにより、コンソールウィンドウが消えますが、他のすべては同じままです。
バッチファイルで現在の作業ディレクトリ(CD)を変更することができます。
相対パスのリンクは、Windowsのコマンドラインで mklink コマンドを使用して作成できます。
mklink /d \MyDocs \Users\User1\Documents
これは、明らかに、ショートカットの動作が作成方法(UI vs mklinkコマンド)に基づいて異なる可能性があるため、リンクを作成する最良の方法かもしれません。ルートフォルダーを変更すると、ショートカットがどのように動作するかという奇妙な動作を観察しました。