バッチファイルの変数に現在のディレクトリ名を照会する方法

バッチファイルの変数に現在のディレクトリ名を照会する方法

私は、現在のディレクトリ名を変数に取得する方法について調査し、試行錯誤してきましたが、うまくいきませんでした%CurrDirNam%。たとえば、以下の 3 番目の例のように、同じフォルダ名を持つテキスト ファイルを作成するなどです。ただし、実行すると、既存のファイルとその内容が上書きされるため、ファイルの存在を確認するために一番下の行を変更しました。 Set DirName=%cd% For %%A in ("%dirname%") do ( Set Name=%%~nxA ) IF NOT EXIST %Name%.txt Echo %Dirname% > %DirName%\%Name%.txt Rem --- 申し訳ありませんが、CRLF とインデントを使用してコードを再フォーマットする方法がわかりません。この分野は初心者です...

答え1

これを実行すると

Set DirName=%cd% 
Echo %Dirname% > %DirName%.txt

からC:\一時、それは拡大します

Set DirName=C:\Temp 
Echo C:\Temp > C:\Temp.txt

C:\への書き込み権限がない場合、これは失敗し、アクセスが拒否されました受け取るメッセージ。

C:\Temp にファイルを作成する場合は、次のようにします。

Set DirName=%cd% 
Echo %Dirname% > %DirName%\test.txt

ファイル名がディレクトリ名と一致する必要がある場合は、次のトリックを使用します。

Set DirName=%cd%
For %%A in ("%dirname%") do (
    Set Name=%%~nxA
)
Echo %Dirname% > %DirName%\%Name%.txt

答え2

これを Windows 10 システムでテストしましたが、問題なく動作しました。

>path.txt echo %cd%

私はパスが必要なディレクトリにいる間にこれをバッチスクリプトで実行しました。私の場合、URLを作成するためのパスだけが必要でしたが、>url.txt echo %cd:\=/%これを使用するとURLでスラッシュにする必要のあるすべてのバックスラッシュも処理され、手間が省けることがわかりました。

残されたステップはurl.txtファイルのちょっとした編集だけです

関連情報