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%
)