バッチを使用して、フォルダとそのサブフォルダ(再帰的に)に存在する空のフォルダを検索します.

5221 ワード

縁起:ネット上で1部のソースコードをダウンロードして、しかしその中のいくつかの空のフォルダが存在するため、その上フォルダは特に多くて、しかもディレクトリも比較的に深いので、1つのバッチを書いて、このソースコードの中の空のフォルダを探し出して、githubの上で提出することができます
 1 @echo off

 2 cls

 3 rem --- main program ---

 4 set baseDir=C:\Users\Desktop\src\src\com\sourcecode 5 

 6 echo --- callBefore ---

 7 call :subPro

 8 echo --- callAfter ---

 9 

10 goto mainEnd

11 rem --- main program ---

12 

13 

14 rem sub program

15 :subPro

16 call :subPath %baseDir%

17 goto :eof

18 

19 rem sub       

20 rem %1       

21 :subPath

22 rem                 

23 set fileCount=0

24 for /F "delims=" %%c in ('dir /B %1') do set /a fileCount+=1

25 if %fileCount% == 0 echo %1

26 

27 rem     

28 for /F "delims=" %%d in ('dir /B/A:d %1') do call :subPath %1\%%d

29 

30 goto :eof

31 

32 

33 :subDeep

34 set fileName=%1

35 echo %fileName%

36 

37 rem program end point, SHOULDN'T WRITE ANY CODE IN HERE

38 :mainEnd

 
上のバッチの25行目は空のフォルダのパスを印刷し、変更フォルダにファイルをコピーする場合は、次のコードで25行を置き換えるだけです.
1 set emptyFile=C:\Users\blaze\Desktop\bat\.gitkeep

2 if %fileCount% == 0 copy "%emptyFile%" %1

Windowsにファイル名のないファイルを作成し、ファイルを作成します.filexxx.ここに最後に追加することに注意してください.類似の作成に成功します.classpath .mymetadata .project .gitignoreファイル