标题: [文件操作] [已解决]批处理如何读取EXCEL信息给指定目录下的文件创建文件夹且按照序号归类? [打印本页]
作者: liaoguinan 时间: 2023-9-13 10:51 标题: [已解决]批处理如何读取EXCEL信息给指定目录下的文件创建文件夹且按照序号归类?
本帖最后由 liaoguinan 于 2023-9-13 20:27 编辑
如何读取EXCEL信息给指定目录下的文件创建文件夹且按照序号归类
例如第一条就是创建1.1.1.1-1-1(小明)文件夹并把图片1-3移动到这个文件夹下
第二条就是创建1.1.1.1-1-4(小明)文件夹并把图片4移动到这个文件夹下以此类推
作者: Batcher 时间: 2023-9-13 13:22
回复 1# liaoguinan
请把Excel文件上传到网盘以便测试代码
作者: liaoguinan 时间: 2023-9-13 14:02
回复 2# Batcher
链接:https://pan.baidu.com/s/1yks3JThkBk0Qh6ajOoalhA?pwd=3903 提取码:3903
作者: 77七 时间: 2023-9-13 17:13
把文件另存为 csv格式- @echo off
- setlocal enabledelayedexpansion
- for /f "useback tokens=1-5 delims=," %%a in ("1.csv") do (
- set /a n+=1
- set m=%%b
- call :1 !n!
- md "%%a%%b%%c%%d%%e"
- for /l %%l in (%%b,1,!m!) do (
- set k=00%%l
- move "!k:~-3!.jpg" "%%a%%b%%c%%d%%e"
- )
- )
- pause & exit
-
- :1
- for /f "useback skip=%~1 tokens=1-5 delims=," %%a in ("1.csv") do (
- set /a m=%%b-1
- exit /b
- )
- exit /b
复制代码
作者: liaoguinan 时间: 2023-9-13 17:27
回复 4# 77七
for /f "useback tokens=1-5 delims=," %%a in ("C:\Users\Administrator\Desktop\1.csv") do (
大神这一段的这个路径如何修改才能脚本正常呢?貌似我这样修改会出错,就是想读取桌面这个
作者: 77七 时间: 2023-9-13 17:35
回复 5# liaoguinan
这样改没错的,是不是遗漏了一处?一共有两处需要修改。
路径如果有中文,批处理需要保存为ansi编码格式。
作者: liaoguinan 时间: 2023-9-13 17:41
回复 6# 77七
@echo off
setlocal enabledelayedexpansion
for /f "useback tokens=1-5 delims=," %%a in ("C:\Users\Administrator\Desktop\1.csv") do (
set /a n+=1
set m=%%b
call :1 !n!
md "%%a%%b%%c%%d%%e"
for /l %%l in (%%b,1,!m!) do (
set k=00%%l
move "!k:~-3!.jpg" "%%a%%b%%c%%d%%e"
)
)
pause & exit
:1
for /f "useback skip=%~1 tokens=1-5 delims=," %%a in ("C:\Users\Administrator\Desktop\1.csv") do (
set /a m=%%b-1
exit /b
)
exit /b
两处都改了,运行提示“系统找不到文件C:\Users\Administrator\Desktop\1.csv”
批处理文件和1.csv在处理的文件夹下运行是没问题的正常,但是把1.csv移到桌面就不行了
作者: Batcher 时间: 2023-9-13 17:47
回复 4# 77七
useback改成usebackq
作者: liaoguinan 时间: 2023-9-13 17:55
回复 8# Batcher
还是一样
作者: 77七 时间: 2023-9-13 18:08
回复 9# liaoguinan
- @echo off
- if not exist "C:\Users\Administrator\Desktop\1.csv" (
- echo 找不到文件
- )
- pushd "C:\Users\Administrator\Desktop"
- dir /b /s /a-d 1.csv
- pause
复制代码
确定1.csv在desktop下吗
作者: liaoguinan 时间: 2023-9-13 18:13
回复 10# 77七
对的
作者: 77七 时间: 2023-9-13 18:19
回复 11# liaoguinan
10楼代码,试了吗,找得到文件吗?
作者: liaoguinan 时间: 2023-9-13 18:27
回复 12# 77七
作者: liaoguinan 时间: 2023-9-13 18:30
本帖最后由 liaoguinan 于 2023-9-13 18:33 编辑
回复 12# 77七
还有一个问题就是最后一个文件夹如果不是一张的话好像不会把其他的放进去呢?
比如最后一个文件夹是图片号10-15页码这种的话他只会把图片号10放进去
作者: 77七 时间: 2023-9-13 18:47
本帖最后由 77七 于 2023-9-13 18:58 编辑
回复 14# liaoguinan
那就别修改csv文件了。
- @echo off
- setlocal enabledelayedexpansion
- for /f "useback tokens=1-5 delims=," %%a in ("1.csv") do (
- set /a n+=1
- set m=999
- call :1 !n!
- md "%%a%%b%%c%%d%%e"
- for /l %%l in (%%b,1,!m!) do (
- set k=00%%l
- if exist "!k:~-3!.jpg" (
- move "!k:~-3!.jpg" "%%a%%b%%c%%d%%e"
- )
- )
- )
- pause & exit
-
- :1
- for /f "useback skip=%~1 tokens=1-5 delims=," %%a in ("1.csv") do (
- set /a m=%%b-1
- exit /b
- )
- exit /b
复制代码
作者: 77七 时间: 2023-9-13 18:55
回复 13# liaoguinan
估计你的桌面文件夹要求权限?比较特殊?会修改就自己再试试,隔着屏幕实在不知道咋回事了。比如管理员运行,或者先进入路径,或者用type 试下
作者: liaoguinan 时间: 2023-9-13 20:27
回复 15# 77七
不理他了,感谢感谢
作者: liaoguinan 时间: 2023-9-13 20:34
回复 15# 77七
找出问题在哪里了,我的EXCEL文件是打开着的,要关闭了就正常了
作者: qixiaobin0715 时间: 2023-9-14 10:57
本帖最后由 qixiaobin0715 于 2023-9-14 14:19 编辑
几经易稿,老觉得有问题,就这样吧。未测试,将批处理和1.csv文件放在图片文件夹中:- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1-5 delims=," %%a in (1.csv) do (
- set str=00%%b
- set str=!str:~-3!
- set #!str!=%%a%%b%%c%%d%%e
- md "%%a%%b%%c%%d%%e"
- )
- for /f "delims=" %%i in ('dir /b /a-d ???.jpg') do (
- if defined #%%~ni set Folder=!#%%~ni!
- move "%%i" "!Folder!\"
- )
- pause
复制代码
作者: 77七 时间: 2023-9-14 13:12
满足14楼需要,也可以少写一个for循环。- @echo off
- setlocal enabledelayedexpansion
- for /f "useback tokens=1-4* delims=," %%a in (`type "1.csv" ^& echo 1^,1000`) do (
- if defined n (
- set /a m=%%b-1
- md "!f!"
- for /l %%l in (!n!,1,!m!) do (
- set k=00%%l
- if exist "!k:~-3!.jpg" (
- move "!k:~-3!.jpg" "!f!"
- )
- )
- )
- set n=%%b
- set f=%%a%%b%%c%%d%%e
- )
- pause & exit
复制代码
作者: liaoguinan 时间: 2023-9-14 14:30
回复 20# 77七
太感谢了
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |