在每个子文件夹中批量创建一个文件夹并将所有 .jpg 文件移动到其中
Batch create a Folder in every subfolders and Move all the .jpg files in it
我创建了一个名为 Pictures 的文件夹并将所有 .jpg 文件放入其中的批处理文件。
@echo off
md Pictures
for %%i in ("*.jpg") do (
move /Y "%%i" "Pictures" )
end
有没有办法让脚本也遍历子目录?我想 运行 根目录下的批处理文件并使其适用于所有子文件夹。
其实我刚刚想通了
@echo off
setlocal
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
rem enter the directory
pushd %%a
echo In Directory: %%a
md Pictures
for %%i in ("*.jpg") do (
move /Y "%%i" "Pictures" )
rem leave the directory
popd
)
endlocal
它做同样的事情,但它通过子文件夹工作。我花了一些时间才弄明白。无论如何,希望它也能帮助到其他人。
根据您提供的答案,我建议您可以这样做,在一行中 batch-file:
@For /D %%G In (*) Do @"%__AppDir__%Robocopy.exe" "%%G" "%%G\Pictures" *.jpg /Mov >NUL 2>&1
作为替代方案,因为 For /D
可能不会选取您的所有目录,(它忽略具有隐藏和系统属性的目录):
@For /F "EOL=? Delims=" %%G In ('Dir /B /AD') Do @"%__AppDir__%Robocopy.exe" "%%G" "%%G\Pictures" *.jpg /Mov >NUL 2>&1
试试这个:
for /f %%a in ('dir /b /ad "Filepath"') do (
md "%%~fa\Pictures"
for %%b in ("*.jpg") do robocopy "%%~fb" "%%~fa\Pictures\" /mov
)
我创建了一个名为 Pictures 的文件夹并将所有 .jpg 文件放入其中的批处理文件。
@echo off
md Pictures
for %%i in ("*.jpg") do (
move /Y "%%i" "Pictures" )
end
有没有办法让脚本也遍历子目录?我想 运行 根目录下的批处理文件并使其适用于所有子文件夹。
其实我刚刚想通了
@echo off
setlocal
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
rem enter the directory
pushd %%a
echo In Directory: %%a
md Pictures
for %%i in ("*.jpg") do (
move /Y "%%i" "Pictures" )
rem leave the directory
popd
)
endlocal
它做同样的事情,但它通过子文件夹工作。我花了一些时间才弄明白。无论如何,希望它也能帮助到其他人。
根据您提供的答案,我建议您可以这样做,在一行中 batch-file:
@For /D %%G In (*) Do @"%__AppDir__%Robocopy.exe" "%%G" "%%G\Pictures" *.jpg /Mov >NUL 2>&1
作为替代方案,因为 For /D
可能不会选取您的所有目录,(它忽略具有隐藏和系统属性的目录):
@For /F "EOL=? Delims=" %%G In ('Dir /B /AD') Do @"%__AppDir__%Robocopy.exe" "%%G" "%%G\Pictures" *.jpg /Mov >NUL 2>&1
试试这个:
for /f %%a in ('dir /b /ad "Filepath"') do (
md "%%~fa\Pictures"
for %%b in ("*.jpg") do robocopy "%%~fb" "%%~fa\Pictures\" /mov
)