7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

現在のディレクトリ以下にあるファイルのパス一覧を取得するバッチファイルを書いた

Last updated at Posted at 2016-07-11

一年近く前に書いた現在のディレクトリ以下にあるファイルのパス一覧を取得は、現在の業務で頻繁に使用しているコマンドだが、めんどくさい問題が2点あった。

  • 本当はディレクトリの区切り文字をバックスラッシュじゃなくてスラッシュで取得したい。
  • コマンドを実行したあとに別のファイルにコピペしなければいけない。

これまでは、コマンドの実行結果を矩形選択からコピーして、別のファイルにペーストして、それをGvimで置換処理するという作業をしていたが、一年近くこんなことを続けててそろそろ楽をしたくなってきたので、楽できるバッチファイルを書いた。

filelist.bat
::: カレントディレクトリ以下にあるファイルを全て取得
::: 相対パスでリスト出力する
@echo off
setlocal enabledelayedexpansion
set BSLASH=\
set CD_S=%CD%%BSLASH%
set RESULT=
for /f "usebackq tokens=*" %%i in (`dir /s /b /a-d`) do (
  set RESULT=!RESULT!^

%%i
)
set LIST_SUB=!RESULT:%CD_S%=!
set /p LIST=!LIST_SUB:\=/!<nul
endlocal
flcp.bat
::: filelistの結果をクリップボードにコピーする
@echo off
call filelist
call filelist | clip
echo;
echo;
echo ファイル一覧をクリップボードにコピーしました。

これらのファイルを、環境変数PATHが通っている任意のディレクトリに置く。
あとはファイル一覧を取得したいディレクトリをShift+右クリックでコマンドプロンプトを開き、上記のどっちかを実行するだけ。
filelist.batはスラッシュ区切りのパス一覧を標準出力するだけ。
flcp.batはfilelist.batの結果をクリップボードにコピーしてくれる。
これからはflcpを実行して任意のテキストファイルにペーストするだけになり、時間の短縮に成功した。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?