添加更多扩展来移动不同类型的文件

添加更多扩展来移动不同类型的文件

我有一些文件和一些文件夹。
我使用此脚本将所有文件移动.pdf到文件夹中。

@echo off
setlocal EnableExtensions DisableDelayedExpansion
for /F "eol=| delims=" %%I in ('dir /AD /B /O-N 2^>nul') do if exist "%%I*.pdf" move /Y "%%I*.pdf" "%%I\"
endlocal

但我还想移动.rar、、.cbr文件.cbz
我该如何添加这些扩展名?

答案1

我该如何添加这些扩展?

这是一个解决方案。

echo off
setlocal EnableExtensions DisableDelayedExpansion
for /F "eol=| delims=" %%I in ('dir /AD /B /O-N 2^>nul') do (
  if exist "%%I*.pdf" move /Y "%%I*.pdf" "%%I\"
  if exist "%%I*.rar" move /Y "%%I*.rar" "%%I\"
  if exist "%%I*.cbr" move /Y "%%I*.cbr" "%%I\"
  if exist "%%I*.cbz" move /Y "%%I*.cbz" "%%I\"
  )

答案2

您可以用if exist以下move命令替换2>nul

如果文件存在,它们将通过单个命令移动,如果文件不存在,任何错误消息都将被抑制,并且潜在错误不会对文件产生影响,它只会出现在屏幕上。

对于这种可预见的错误并且没有重大影响,您只能抑制消息。

它与循环dir内的命令中使用的处理方式相同for /fdir / ... 2>nul

使用附加for循环并根据需要添加尽可能多的扩展:


@echo off && setlocal EnableExtensions DisableDelayedExpansion

for /F tokens^=* %%I in ('dir /A:D /B /O:-N 2^>nul')do for %%i in (
    rar,zip,cbr,cbz,pdf)do 2>nul move/Y ".\\%%~I*.%%~i" ".\\%%~I\."

endlocal


  • 其他资源:

相关内容