dirsub.bat カレントフォルダー以下のファイル、フォルダーを相対パスで表示するバッチファイル

dirsub.batの使い方

drisub.bat

引数無しで実行すると、カレントフォルダー以下の全ファイルが相対パスで表示される

dirsub.bat *.txt

のように実行すると、カレントフォルダー以下の該当ファイルが相対パスで表示される

dirsub.bat \

で実行すると、カレントフォルダー以下の全フォルダーが相対パスで表示される

forfiles /s /m * /c “cmd /c if @isdir==FALSE echo @relpath”
というコマンドは有るが、出力結果にダブルクォーテーションと
行頭にドットバックスラッシュが付加されてしまう。
打ち込む文字数多い。

dir/s/b
というコマンドオプションはあるが、フルパスで表示されてしまう。

concat.batの使い方

dirsub.bat *.txt *.cfg *.py > file_list.txt
concat.bat file_list.txt

のようにすると、該当ファイルが1つのテキストファイルにまとめれる。
##################################################
::This software includes the work that is distributed in the Apache License 2.0.
::https://www.apache.org/licenses/LICENSE-2.0

::dirsub.bat

@echo off

setlocal enableDelayedExpansion

if “%~1” == “” (
for /r %CD% %%A in (*.*) do (
set par_dir=%%~dpA
set file_path=!par_dir:%CD%\=!%%~nxA
if exist !file_path! (echo !file_path!)
)
) else (
for /r %CD% %%A in (%*) do (
set par_dir=%%~dpA
set file_path=!par_dir:%CD%\=!%%~nxA
if exist !file_path! (echo !file_path!)
)
)

endlocal
##################################################
::This software includes the work that is distributed in the Apache License 2.0.
::https://www.apache.org/licenses/LICENSE-2.0

::concat.bat

@echo off
chcp 65001 > nul

set file_name=result.txt
set sep=##################################################

type nul > %file_name%

for /f “delims=” %%A in (%*) do (
(echo #%%A) >> %file_name%
(echo;) >> %file_name%
type %%A >> %file_name%
(echo %sep%) >> %file_name%
)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です