标题: [文件操作] 批处理建立文件夹,移动到对应目录下,怎么不成功呀? [打印本页]
作者: sblisb 时间: 2015-4-8 20:42 标题: 批处理建立文件夹,移动到对应目录下,怎么不成功呀?
做了个bat,功能为建目录,移动文件夹,比如
将文件名为“全部203212064”的文件移到“\龙继乡\上坑"目录下
目录名根据“全部203212064”红色部份查code.txt
作者: sblisb 时间: 2015-4-8 20:44
code.txt内容如下
DISTRICT_NAME DISTRICT_CODE
龙继乡 350783203
上坑 350783203212
代码如下
@echo off&setlocal enabledelayedexpansion
for /f "delims=U" %%a in ('cmd /u /c echo 唉') do set "tab=%%a"
(for /f "skip=1 tokens=1* delims=%tab%" %%a in (code.txt) do (
if %%b leq 999999999 (
set "dst=%%a"
) else (
set "str=%%b"
set "str=!str:~-6!"
if exist "全部!str!*.xls" (
md "!dst!\%%a\"
move "全部!str!*.*" "!dst!\%%a\"
)
)
))>nul 2>nul
哪位帮一下,下载附件指点一下,谢了
作者: Batcher 时间: 2015-4-8 21:59
- @echo off
- setlocal enabledelayedexpansion
- for /f "skip=1 tokens=1*" %%a in ('type code.txt') do (
- if %%b leq 999999999 (
- set "dst=%%a"
- ) else (
- set "str=%%b"
- set "str=!str:~-6!"
- if exist "全部!str!*.xls" (
- md "!dst!\%%a\"
- move /y "全部!str!*.*" "!dst!\%%a\"
- )
- )
- )
复制代码
作者: sblisb 时间: 2015-4-8 22:12
Batcher 发表于 2015-4-8 21:59
谢谢版主,但是有个文件名中带英文的不识别,比如“全部103x21020”
作者: Batcher 时间: 2015-4-8 22:56
回复 4# sblisb
传上来我试试
作者: sblisb 时间: 2015-4-8 23:35
回复 sblisb
传上来我试试
Batcher 发表于 2015-4-8 22:56
作者: Batcher 时间: 2015-4-9 09:43
回复 6# sblisb
字母的出现会导致 if %%b leq 999999999 判断失败,因为字母是大于数字的,你先想好逻辑上怎么处理吧,为什么要做这个判断呢?
作者: sblisb 时间: 2015-4-9 11:58
回复 sblisb
字母的出现会导致 if %%b leq 999999999 判断失败,因为字母是大于数字的,你先想好 ...
Batcher 发表于 2015-4-9 09:43
因为原来的编码就是这样,第四位可能有字母,现在怎么改?再循环一次?
作者: pcl_test 时间: 2015-4-9 12:24
把完整的code.txt打包发上来,文件过大可上传网盘发分享链接
作者: sblisb 时间: 2015-4-9 12:30
本帖最后由 sblisb 于 2015-4-9 12:34 编辑
把完整的code.txt打包发上来,文件过大可上传网盘发分享链接
pcl_test 发表于 2015-4-9 12:24
看了下文件,只有第一位和第四位会出现英文x,没有其它字母
作者: sblisb 时间: 2015-4-9 12:37
编码表中为,"某某 350783x02x34"只有这两位有英文x
作者: pcl_test 时间: 2015-4-9 12:46
回复 11# sblisb
那可以把判断条件改为
set "n=%%b"
if "!n:~9,1!" == "" () else ()
作者: Batcher 时间: 2015-4-9 13:08
回复 8# sblisb - @echo off
- setlocal enabledelayedexpansion
- for /f "skip=1 tokens=1*" %%a in ('type code.txt') do (
- set "dst=%%a"
- set "str=%%b"
- set "str=!str:~-6!"
- if exist "全部!str!*.xls" (
- md "!dst!\%%a\"
- move /y "全部!str!*.*" "!dst!\%%a\"
- )
- )
复制代码
作者: sblisb 时间: 2015-4-9 13:41
回复 sblisb
Batcher 发表于 2015-4-9 13:08
上一级目录错误
作者: Batcher 时间: 2015-4-9 13:49
回复 14# sblisb - @echo off
- setlocal enabledelayedexpansion
- for /f "skip=1 tokens=1*" %%a in ('type code.txt') do (
- set "n=%%b"
- if "!n:~9,1!" == "" (
- set "dst=%%a"
- ) else (
- set "str=%%b"
- set "str=!str:~-6!"
- if exist "全部!str!*.xls" (
- md "!dst!\%%a\"
- move /y "全部!str!*.*" "!dst!\%%a\"
- )
- )
- )
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |