どちらcd
とpushd
バッチファイル内で使用しようとしている任意のコマンドになります仕事の両方-ここでの問題は、あなたが使用しようとすることですsubl
、それはバッチファイル(ディレクトリを変更しようとする試みを無視して)の外側を実行します。最初に確認したいことは、コマンドからSublimeを実行するための適切な環境変数があることです。
これをする:
- コントロールパネルに移動
- システムをクリック
- [システムの詳細設定]をクリックします
- [環境変数...]をクリックします
- 新しいシステム変数を作成する
- 変数にSUBLIMEという名前を付けます
- Sublimeインストールのフォルダーパスを変数値にします
(例:C:\ Program Files \ Sublime Text 3)
- OKをクリック
- ユーザー変数にあるパス変数を編集します
- 変数値に%SUBLIME%を追加します(後に
;
)
- すべてのウィンドウで[OK]をクリックしてウィンドウを閉じます
場合でもsubl
、コマンドから動作しますが、問題は、ことに変わりはないsublime_text.exe
かsubl.exe
にかかわらず、現在のディレクトリがバッチ内で設定されているものの-まだそのホームディレクトリから実行されます。これを回避するには、subl
コマンドにターゲットディレクトリを含める必要があります。これにより、コマンドsubl
を実行する場所がわかります。ターゲットディレクトリを変数として設定し、subl
コマンド内で使用できます。
@echo off
set "dir=C:\folder1\folder2"
subl "%dir%\targetfileorfolder"
うまくいけば、それが助けになります。バッチファイルで間違っていることは何もありません。最終的にはsubl
構成になります。私はここでPythonの半関連の答えを見つけることができました。これらの種類の設定を変更することに慣れていれば、cmd / batchでも同様のことができるかもしれません(それらが利用可能な場合)。
setlocal
ますか?