- 【.cmd】 バッチファイルスクリプト %10 【.bat】
974 :デフォルトの名無しさん[sage]:2015/02/12(木) 02:09:48.03 ID:RudW6Zjv - 3階層に限らずに指定されたディレクトリを対象とし、
もしそこにサブフォルダとかがあったらファイルの親ディレクトリに移動だけで削除はしない とかでいいなら @echo off set targetDir=xxxx set startDir=c:\temp pushd %startDir% forfiles -p%startDir% -s -m%targetDir% -c"cmd /c if @ISDIR==TRUE move /y \"@PATH\%targetDir%\*\" \"@PATH\%targetDir%\..\" 2>nul&rmdir \"@PATH\%targetDir%\" 2>nul" popd
|
- 【.cmd】 バッチファイルスクリプト %10 【.bat】
975 :デフォルトの名無しさん[sage]:2015/02/12(木) 03:31:53.28 ID:RudW6Zjv - >>974のはtargetDirに半角空白が含まれているとエラーになるので
-mtargetDir% → -m"%targetDir%" に、また\"@PATH\%targetDir%\..\"は単に\"@PATH\"で良かった なお、3階層目に限定したのも出来た @echo off set targetDir=xx yy set startDir=c:\temp pushd %startDir% set baseDir=%cd% for /f "tokens=*" %%i in ('forfiles -p%startDir% -s -m"%targetDir%" -c"cmd /c if @ISDIR==TRUE echo \"@PATH\""') do ( call :check %%i ) popd goto :eof :check pushd %1 cd .. if "%cd%" equ "%baseDir%" goto :not3level cd .. if "%cd%" neq "%baseDir%" goto :not3level move "%~1\%targetDir%\*" %1 2>nul rmdir "%~1\%targetDir%" 2>nul :not3level popd goto :eof
|
- 【.cmd】 バッチファイルスクリプト %10 【.bat】
976 :デフォルトの名無しさん[sage]:2015/02/12(木) 03:32:57.54 ID:RudW6Zjv - >>974のはtargetDirに半角空白が含まれているとエラーになるので
-mtargetDir% → -m"%targetDir%" に、また\"@PATH\%targetDir%\..\"は単に\"@PATH\"で良かった なお、3階層目に限定したのも出来た @echo off set targetDir=xx yy set startDir=c:\temp pushd %startDir% set baseDir=%cd% for /f "tokens=*" %%i in ('forfiles -p%startDir% -s -m"%targetDir%" -c"cmd /c if @ISDIR==TRUE echo \"@PATH\""') do ( call :check %%i ) popd goto :eof :check pushd %1 cd .. if "%cd%" equ "%baseDir%" goto :not3level cd .. if "%cd%" neq "%baseDir%" goto :not3level move "%~1\%targetDir%\*" %1 2>nul rmdir "%~1\%targetDir%" 2>nul :not3level popd goto :eof
|