batファイルでcdコマンドを使用した後、変更されたディレクトリにとどまる


4

コンテキスト:

次のコードを含む.BATファイルがあります。

cd C:\folder1\folder2
subl .

ディレクトリ「C:/ folder3」の.BATファイルを実行するとき、.BATファイルからナビゲートされたディレクトリ「C:\ folder1 \ folder2」に留まりたい。今、私はちょうどそのバットファイルを実行した私の前のディレクトリに戻っています、それはC:\ folder3です。

これは、そのディレクトリ「C:\ folder1 \ folder2」でいくつかの手動コマンドを実行するためです。


これはバッチファイルの完全なコードですか?そうでない場合は、使用していsetlocalますか?
MC ND

いいえ、私はsetlocalを使用していません(batファイルの経験はありません。)
JavascriptDeveloper

回答:


0

どちらcdpushdバッチファイル内で使用しようとしている任意のコマンドになります仕事の両方-ここでの問題は、あなたが使用しようとすることですsubl、それはバッチファイル(ディレクトリを変更しようとする試みを無視して)の外側を実行します。最初に確認したいことは、コマンドからSublimeを実行するための適切な環境変数があることです。

これをする:

  1. コントロールパネルに移動
  2. システムをクリック
  3. [システムの詳細設定]をクリックします
  4. [環境変数...]をクリックします
  5. 新しいシステム変数を作成する
  6. 変数にSUBLIMEという名前を付けます
  7. Sublimeインストールのフォルダーパスを変数値にします
    (例:C:\ Program Files \ Sublime Text 3)
  8. OKをクリック
  9. ユーザー変数にあるパス変数を編集します
  10. 変数値に%SUBLIME%を追加します(後に;
  11. すべてのウィンドウで[OK]をクリックしてウィンドウを閉じます

場合でもsubl、コマンドから動作しますが、問題は、ことに変わりはないsublime_text.exesubl.exeにかかわらず、現在のディレクトリがバッチ内で設定されているものの-まだそのホームディレクトリから実行されます。これを回避するには、sublコマンドにターゲットディレクトリを含める必要があります。これにより、コマンドsublを実行する場所がわかります。ターゲットディレクトリを変数として設定し、sublコマンド内で使用できます。

@echo off

set "dir=C:\folder1\folder2"
subl "%dir%\targetfileorfolder"

うまくいけば、それが助けになります。バッチファイルで間違っていることは何もありません。最終的にはsubl構成になります。私はここでPythonの半関連の答えを見つけることができました。これらの種類の設定を変更することに慣れていれば、cmd / batchでも同様のことができるかもしれません(それらが利用可能な場合)。


これは実際にはコメントであり、元の質問に対する答えではありません。いつでも自分の投稿にコメントすることができ、十分な評判たら、どの投稿にもコメントできます。コメントするのに50の評判が必要な理由を
DavidPostill

ありがとう-私はそれをより多くの答え-yに変更しました。
mael '

0

使用する必要があります pushd

:: to call and make direcoty current
pushd C:\folder1\folder2
subl .
:: go back to your old current working directory
popd 

乾杯。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.