Batch file 如何使用.bat脚本制作文件列表
我有目录结构:Batch file 如何使用.bat脚本制作文件列表,batch-file,file-listing,Batch File,File Listing,我有目录结构: pakages |-files.bat |-component |-source |-lib 我需要使用files.bat脚本创建文本文件,文件列表如下: File0001=source\WindowT.pas File0002=source\AWindowT.pas File0003=source\AWindowSplash.pas File0004=source\InternalT.pas File0005=source\ImageLister.pas
pakages
|-files.bat
|-component
|-source
|-lib
我需要使用files.bat脚本创建文本文件,文件列表如下:
File0001=source\WindowT.pas
File0002=source\AWindowT.pas
File0003=source\AWindowSplash.pas
File0004=source\InternalT.pas
File0005=source\ImageLister.pas
File0006=lib\LIcons.res
File0007=lib\TstandartBtn_16.RES
File0008=lib\TstandartBtn_24.RES
……等等
如何制作这样的文件列表
先谢谢你
dir /A:-D /B /S>out.txt
这就是你最想要的。从以下几点开始:
@echo off
call :dodir .
goto eof
:dodir
set TEMP_CUR_DIR="%*"
REM echo Directory %TEMP_CUR_DIR%:
for %%f in (%TEMP_CUR_DIR%\*) do call :dofile %%f
for /d %%d in (%TEMP_CUR_DIR%\*) do call :dodir %%d
goto eof
:dofile
set TEMP_CUR_FILE="%*"
echo File: %TEMP_CUR_FILE%
goto eof
:eof
我拼凑了以下脚本:
@echo off
setlocal
rem The number of the current file, gets incremented
set FileNumber=1
rem Move into "component" directory, the following "for" command will
pushd %~dp0\component
rem loop over directories there
for /d %%f in (*) do call :process "%%f"
rem move into the previous directory again
popd
endlocal
goto :eof
:process
rem process files
for /f %%x in ('dir /b /a:-d %1 2^>nul') do call :process_files %~1 %%x
rem go down recursively, if there are more subdirectories
for /f %%d in ('dir /b /a:+d %1 2^>nul') do call :process %%d
goto :eof
:process_files
call :leadingzeros %FileNumber%
rem Output line
echo File%RESULT%=%~1\%2
set /a FileNumber+=1
goto :eof
rem Parameter: a non-negative number <= 9999
rem Result: a string with zero padding at the start
:leadingzeros
if %1 LSS 10 set RESULT=000%1&goto :eof
if %1 LSS 100 set RESULT=00%1&goto :eof
if %1 LSS 1000 set RESULT=0%1&goto :eof
set RESULT=%1
goto :eof
谢谢,但我需要在字符串File0001、File0002等中生成循环,还需要文件dir/A的相对路径:-D/B/S>out.txt显示完整路径非常感谢!这正是我想要的。 packages │ files.cmd │ └───component ├───lib │ LIcons.res │ TstandardBtn_16.RES │ TstandardBtn_24.RES │ └───source AWindowSplash.pas AWindowT.pas ImageLister.pas InternalT.pas WindowT.pas
File0001=lib\LIcons.res
File0002=lib\TstandardBtn_16.RES
File0003=lib\TstandardBtn_24.RES
File0004=source\AWindowSplash.pas
File0005=source\AWindowT.pas
File0006=source\ImageLister.pas
File0007=source\InternalT.pas
File0008=source\WindowT.pas