标题: [文件操作] 【已解决】批处理怎样把文件自创文件夹归类? [打印本页]
作者: liaoguinan 时间: 2023-1-27 16:26 标题: 【已解决】批处理怎样把文件自创文件夹归类?
如何根据文件名创建子文件夹把把对应文件放进去?
首层文件夹的格式是
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文件
作者: hfxiang 时间: 2023-1-27 17:29
- @for %%a in (*) do @if "%%~fa" NEQ "%~f0" @md "%%~na">nul 2>nul&@move "%%a" ".\%%~na">nul 2>nul
复制代码
作者: 77七 时间: 2023-1-27 17:39
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.pdf') do (
- cd "%%~dpi"
- md "%%~ni"
- echo move "%%i" "%%~ni"
- move "%%i" "%%~ni"
- )
- pause
复制代码
bat放在 新建文件夹(2)目录下
使用前先测试或备份
作者: liaoguinan 时间: 2023-1-27 18:40
回复 2# hfxiang
你这个只能在子目录下运行,能改成在根目录下直接运行吗?只创建1层子目录
作者: liaoguinan 时间: 2023-1-27 18:44
回复 3# 77七
现在这代码是这样一直双击就一直创建, 能改成只创建一层子目录吗?,如果已有一层子目录就不创建了
最终格式 新建文件夹 (2) \HH-001\HH-001-001\HH-001-001.pdf 之后在双击脚本不在创建
作者: 77七 时间: 2023-1-27 19:08
回复 5# liaoguinan
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%a in ('dir /b /ad') do (
- pushd "%%a"
- for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
- md "%%~ni"
- echo move "%%i" "%%~ni"
- move "%%i" "%%~ni"
- )
- popd
- )
- pause
复制代码
使用前先测试或备份
作者: liaoguinan 时间: 2023-1-27 20:58
回复 6# 77七
感谢完美
作者: qixiaobin0715 时间: 2023-1-28 09:14
- @echo off
- for /f "delims=" %%a in ('dir /b /s /a-d *.pdf') do (
- md "%%~dpa%%~na">nul 2>nul
- move "%%a" "%%~dpa%%~na">nul 2>nul
- )
- pause
复制代码
作者: hfxiang 时间: 2023-1-28 09:51
本帖最后由 hfxiang 于 2023-1-28 11:16 编辑
回复 4# liaoguinan
稍做修改即可:- @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
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |