标题: [文本处理] [已解决]批处理如何提取文件部分内容为文件名? [打印本页]
作者: 511182890 时间: 2015-4-4 15:28 标题: [已解决]批处理如何提取文件部分内容为文件名?
本帖最后由 511182890 于 2015-4-17 15:11 编辑
提取文件部分内容为文件名并创建该文件,且把文件移动到该文件
例:e盘下文件
E:\ZX1011-TB1875-147主料(0.5)双向.DXF
E:\ZX1011-GB1201-147主料(0.5)双向.DXF
需要的结果:
E:\TB1875\ZX1011-TB1875-147主料(0.5)双向DXF
E:\GB1201\ZX1011-GB1201-147主料(0.5)双向.DXF
作者: tigerpower 时间: 2015-4-5 14:32
本帖最后由 tigerpower 于 2015-4-5 23:15 编辑
- for /f "delims=- tokens=1,2*" %i in ('dir /b') do (mkdir "%j" && move "%i-%j-%k" "%j")
复制代码
作者: bailong360 时间: 2015-4-5 14:37
回复 2# tigerpower
代码配色有种小清新之感
作者: 511182890 时间: 2015-4-6 15:47
回复 2# tigerpower
你好,我对批处理一点也不通,麻烦直接帮我做成批处理的所有代码好吗,那样我只要复制到。TXT我另存到。BAT直接运行就可以了,麻烦了。
作者: tigerpower 时间: 2015-4-7 17:07
- @echo off
- pushd E:\
- for /f "delims=- tokens=1,2*" %%i in ('dir /a-d /b') do (mkdir "%%j" && move "%%i-%%j-%%k" "%%j")
复制代码
作者: 511182890 时间: 2015-4-10 09:43
回复 5# tigerpower
这个好像如果很多文件要移到同一个文件夹的时候,只能移动一个,而且重复运行也不会移动。
作者: 511182890 时间: 2015-4-10 09:50
回复 5# tigerpower
只要有文件夹存在了,就不会把文件移进存在的文件中。
作者: pcl_test 时间: 2015-4-10 09:55
回复 7# 511182890
后面的改为
move /y "%%i-%%j-%%k" "%%j"
作者: 511182890 时间: 2015-4-10 12:20
回复 8# pcl_test
/y 加了之后结果与不加一样的。
作者: tigerpower 时间: 2015-4-10 15:55
回复 4# 511182890
10楼说的对,把 && 改成 &
作者: 511182890 时间: 2015-4-11 09:36
回复 10# tigerpower
谢谢,终于成功了。
作者: 511182890 时间: 2015-4-11 09:37
谢谢各位的解答,已经OK了
作者: pcl_test 时间: 2015-4-11 10:22
回复 12# 511182890
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
作者: 511182890 时间: 2015-4-13 11:32
回复 13# pcl_test
你好,还有个问题,就是不一定是当前E盘,有可能是任意盘下的所有文件
作者: pcl_test 时间: 2015-4-13 12:17
本帖最后由 pcl_test 于 2015-4-13 15:49 编辑
回复 14# 511182890
去掉pushd E:\,把批处理跟要处理的文件放在一起运行即可,you can try
作者: tigerpower 时间: 2015-4-13 13:09
回复 14# 511182890 - @echo off
- setlocal enabledelayedexpansion
- for /l %%I in (65,1,90) do (
- cmd /c exit %%I
- pushd !=exitcodeascii!:\ 2>NUL && for /f "delims=- tokens=1,2*" %%i in ('dir /a-d /b') do (mkdir "%%j" & move "%%i-%%j-%%k" "%%j")
- )
复制代码
作者: 511182890 时间: 2015-4-13 13:23
回复 15# pcl_test
你好,我上面的这个问题,从第一“-”开始取5位,这样行吗
比如:
E:\ZX1011-GB1201三位-147主料(0.5)双向.DXF
结果:
E:\GB1201\ZX1011-GB1201-147主料(0.5)双向.DXF
@echo off
pushd E:\
for /f "delims=- tokens=1,2*" %%i in ('dir /a-d /b') do (mkdir "%%j" & move /y "%%i-%%j-%%k" "%%j")
这个代码是处理二个“-”之间的,帮忙加于更改一下。
作者: 511182890 时间: 2015-4-13 13:24
回复 16# tigerpower
你好,我上面的这个问题,从第一“-”开始取5位,这样行吗
比如:
E:\ZX1011-GB1201三位-147主料(0.5)双向.DXF
结果:
E:\GB1201\ZX1011-GB1201-147主料(0.5)双向.DXF
@echo off
pushd E:\
for /f "delims=- tokens=1,2*" %%i in ('dir /a-d /b') do (mkdir "%%j" & move /y "%%i-%%j-%%k" "%%j")
这个代码是处理二个“-”之间的,帮忙加于更改一下。
作者: pcl_test 时间: 2015-4-13 15:53
本帖最后由 pcl_test 于 2015-4-14 09:19 编辑
回复 17# 511182890
把批处理跟要处理的文件放在一起运行即可- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1,2* delims=-" %%i in ('dir /a-d /b *.dxf') do (
- set "n=%%j"
- md "!n:~,6!\" 2>nul
- move "%%i-%%j-%%k" "!n:~,6!\"
- )
- pause
复制代码
作者: 511182890 时间: 2015-4-14 09:00
回复 19# pcl_test
这个代码在当前目录运行之后会自动创建一个以“~,5”命名的文件夹!
作者: pcl_test 时间: 2015-4-14 09:11
本帖最后由 pcl_test 于 2015-4-14 09:12 编辑
回复 20# 511182890
改为 dir /a-d /b *.dxf
作者: 511182890 时间: 2015-4-14 09:17
回复 21# pcl_test
我又不知道怎么,哪一行改为dir /a-d /b *.dxf 所以还是要麻烦大神帮我写整个代码
还有:
比如:
E:\ZX1011-D1-GB1201三位-147主料(0.5)双向.DXF
结果:
E:\GB1201\ZX1011-D1-GB1201-147主料(0.5)双向.DXF
这个怎么实现,就是第二个“-”开始取6位做文件名
作者: pcl_test 时间: 2015-4-14 09:19
回复 22# 511182890
19楼已改
作者: 511182890 时间: 2015-4-14 10:16
回复 23# pcl_test
谢谢19楼的已经OK,
新问题:
比如:
E:\ZX1011-D1-GB1201三位-147主料(0.5)双向.DXF
结果:
E:\GB1201\ZX1011-D1-GB1201-147主料(0.5)双向.DXF
这个怎么实现,就是第二个“-”开始取6位做文件名
中间多了“--D1”
作者: pcl_test 时间: 2015-4-14 10:34
回复 24# 511182890
把你的dxf所有文件名的格式都列出来,如
1-2-3.DXF
1-2-3-4.DXF
作者: 511182890 时间: 2015-4-14 10:43
回复 25# pcl_test
AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
FT505-D3-PLD1809-142副背料(0米75)双向.dxf
BSJ101-D3-PKD1885横排-140主料(1米21)倒顺.dxf
差不多就全在这里,麻烦了
作者: 511182890 时间: 2015-4-14 10:46
AD101-D1-PKD-140背料(2米62)倒顺.dxf
AD101-D1-P0LD-140背料(2米62)倒顺.dxf
作者: 511182890 时间: 2015-4-14 10:47
AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
FT505-D3-PLD1809-142副背料(0米75)双向.dxf
BSJ101-D3-PKD1885横排-140主料(1米21)倒顺.dxf
AD101-D1-PKD-140背料(2米62)倒顺.dxf
AD101-D1-P0LD-140背料(2米62)倒顺.dxf
好了,全部在这里了,如果PKD与P0LD没法与那有7位的一起实现也没有关系
作者: 511182890 时间: 2015-4-14 10:49
之前做的程序,按任意健转换这个直接取消好了,运行直接关掉好了。
作者: 511182890 时间: 2015-4-14 11:04
回复 19# pcl_test
问题1:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2* delims=-" %%i in ('dir /a-d /b *.dxf') do (
set "n=%%j"
md "!n:~,6!\" 2>nul
move "%%i-%%j-%%k" "!n:~,6!\"
)
pause
这个代码直接运行关掉好了,不需要按任意键退出,帮忙更改一下。
问题2:
AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
FT505-D3-PLD1809-142副背料(0米75)双向.dxf
BSJ101-D3-PKD1885横排-140主料(1米21)倒顺.dxf
AD101-D1-PKD-140背料(2米62)倒顺.dxf
AD101-D1-P0LD-140背料(2米62)倒顺.dxf
怎么做个命令移动到
PKD1818\AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
PKD1822\AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
PLD1809\FT505-D3-PLD1809-142副背料(0米75)双向.dxf
PKD1885\BSJ101-D3-PKD1885横排-140主料(1米21)倒顺.dxf
PKD\AD101-D1-PKD-140背料(2米62)倒顺.dxf
P0LD\AD101-D1-P0LD-140背料(2米62)倒顺.dxf
如果3 4位文件夹不能与7位文件夹一起,关系也不是很大。
问题3:
我下面这些文件里的批处理
E:\A\1.BAT
E:\B\2.BAT
E:\C\C\3.BAT
,需要个代码,指定10:00与14:00运行一次
麻烦大神了。
作者: pcl_test 时间: 2015-4-14 12:01
本帖最后由 pcl_test 于 2015-4-14 12:12 编辑
问题1、2- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=1-3* delims=-" %%a in ('dir /a-d /b *.dxf') do (
- if "%%d" == "" (
- set "n=%%b"
- md "!n:~,6!\" 2>nul
- move "%%a-%%b-%%c" "!n:~,6!\"
- ) else (
- set "n=%%c"
- md "!n:~,7!\" 2>nul
- move "%%a-%%b-%%c-%%d" "!n:~,7!\"
- )
- )
复制代码
问题3 论坛自行搜索 定时
作者: 511182890 时间: 2015-4-14 17:08
回复 31# pcl_test
问题2:
AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
AD101-D1-PKD-140背料(2米62)倒顺.dxf
AD101-D1-P0LD-140背料(2米62)倒顺.dxf
FT505-G1201三位-AA-142副背料(0米75)双向.dxf
FT505-G1956-AA-142副背料(0米75)双向.dxf
怎么做个命令移动到
PKD1818\AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
PDK1822\AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
PDK\AD101-D1-PKD-140背料(2米62)倒顺.dxf
P0LD\AD101-D1-P0LD-140背料(2米62)倒顺.dxf
G1201\FT505-G1201三位-AA-142副背料(0米75)双向.dxf
G1956\FT505-G1956-AA-142副背料(0米75)双向.dxf
之前那命令没有-AA
现在多加了-AA
作者: 511182890 时间: 2015-4-15 09:56
回复 31# pcl_test
问题2:
AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
AD101-D1-PKD-140背料(2米62)倒顺.dxf
AD123-D1-P0LD-140背料(2米62)倒顺.dxf
AD145-D1-PKD三位-140背料(2米62)倒顺.dxf
AD167-D1-P0LD横向-140背料(2米62)倒顺.dxf
FT505-G1201三位-AA-142副背料(0米75)双向.dxf
FT505-G1956-AA-142副背料(0米75)双向.dxf
怎么做个命令移动到
PKD1818\AD101-D1-PKD1818-140背料(2米62)倒顺.dxf
PDK1822\AD101-D1-PKD1822横排-140副料(1米57)双向.dxf
PDK\AD101-D1-PKD-140背料(2米62)倒顺.dxf
P0LD\AD101-D1-P0LD-140背料(2米62)倒顺.dxf
PKD\AD145-D1-PKD三位-140背料(2米62)倒顺.dxf
P0LD\AD167-D1-P0LD横向-140背料(2米62)倒顺.dxf
G1201\FT505-G1201三位-AA-142副背料(0米75)双向.dxf
G1956\FT505-G1956-AA-142副背料(0米75)双向.dxf
作者: 511182890 时间: 2015-4-16 13:18
本帖最后由 511182890 于 2015-4-16 13:20 编辑
回复 31# pcl_test
大神再帮一个忙
ABD101-D1-P0KD.DSN
AD101-D1-P0D.DSN
AD101-D1-PKA1101.DSN
ACD101-D1-PKA3333无刀眼.DSN
处理为
P0KD\ABD101-D1-P0KD.DSN
P0D\AD101-D1-P0D.DSN
PKA1101\AD101-D1-PKA1101.DSN
PKA3333\ACD101-D1-PKA3333无刀眼.DSN
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |