[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理怎样把文件自创文件夹归类?

如何根据文件名创建子文件夹把把对应文件放进去?      
   首层文件夹的格式是
HH-001、HH-002、HH-003
文件夹内放着HH-001-001.pdf、HH-001-002.pdf、HH-001-003.pdf、HH-001-004.pdf


这样形式的PDF文件,如何把这些PDF分别创建一个文件夹放入?


比如HH-001-001.pdf就创建子文件夹HH-001-001把HH-001-001.pdf放进去,其他一样根据PDF文件名来创建

每个首层目录下都有很多PDF文件

1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @for %%a in (*) do @if "%%~fa" NEQ "%~f0" @md "%%~na">nul 2>nul&@move "%%a" ".\%%~na">nul 2>nul
复制代码

TOP

  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /s /a-d *.pdf') do (
  4. cd "%%~dpi"
  5. md "%%~ni"
  6. echo move "%%i" "%%~ni"
  7. move "%%i" "%%~ni"
  8. )
  9. pause
复制代码

bat放在 新建文件夹(2)目录下
使用前先测试或备份
bat小白,请多指教!谢谢!

TOP

回复 2# hfxiang


  你这个只能在子目录下运行,能改成在根目录下直接运行吗?只创建1层子目录

TOP

回复 3# 77七


现在这代码是这样一直双击就一直创建, 能改成只创建一层子目录吗?,如果已有一层子目录就不创建了


最终格式          新建文件夹 (2) \HH-001\HH-001-001\HH-001-001.pdf        之后在双击脚本不在创建

TOP

回复 5# liaoguinan


  
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%a in ('dir /b /ad') do (
  4. pushd "%%a"
  5. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  6. md "%%~ni"
  7. echo move "%%i" "%%~ni"
  8. move "%%i" "%%~ni"
  9. )
  10. popd
  11. )
  12. pause
复制代码
使用前先测试或备份
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 6# 77七


    感谢完美

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /s /a-d *.pdf') do (
  3.     md "%%~dpa%%~na">nul 2>nul
  4.     move "%%a" "%%~dpa%%~na">nul 2>nul
  5. )
  6. pause
复制代码

TOP

本帖最后由 hfxiang 于 2023-1-28 11:16 编辑

回复 4# liaoguinan


稍做修改即可:
  1. @for /f %%a in ('dir *.pdf /b/s/a-d') do  @if "%%~fa" NEQ "%~f0" @pushd "%%~dpa" &@(@for /f "delims=\" %%b in ("%%~dpa") do @if "%%~nb" NEQ "%%~na" @md "%%~dpna">nul 2>nul&@move "%%~fa" "%%~dpna\">nul 2>nul )&@popd
复制代码

TOP

返回列表