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

[文件操作] 批处理建立文件夹,移动到对应目录下,怎么不成功呀?

做了个bat,功能为建目录,移动文件夹,比如
将文件名为“全部203212064”的文件移到“\龙继乡\上坑"目录下
目录名根据“全部203212064”红色部份查code.txt

回复 14# sblisb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=1 tokens=1*" %%a in ('type code.txt') do (
  4.     set "n=%%b"
  5.     if "!n:~9,1!" == "" (
  6.         set "dst=%%a"
  7.     ) else (
  8.         set "str=%%b"
  9.         set "str=!str:~-6!"
  10.         if exist "全部!str!*.xls" (
  11.             md "!dst!\%%a\"
  12.             move /y "全部!str!*.*" "!dst!\%%a\"
  13.         )
  14.     )
  15. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复  sblisb
Batcher 发表于 2015-4-9 13:08

上一级目录错误

TOP

回复 8# sblisb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=1 tokens=1*" %%a in ('type code.txt') do (
  4.     set "dst=%%a"
  5.     set "str=%%b"
  6.     set "str=!str:~-6!"
  7.     if exist "全部!str!*.xls" (
  8.         md "!dst!\%%a\"
  9.         move /y "全部!str!*.*" "!dst!\%%a\"
  10.     )
  11. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 11# sblisb
那可以把判断条件改为
set "n=%%b"
if "!n:~9,1!" == "" () else ()

TOP

编码表中为,"某某  350783x02x34"只有这两位有英文x

TOP

本帖最后由 sblisb 于 2015-4-9 12:34 编辑
把完整的code.txt打包发上来,文件过大可上传网盘发分享链接
pcl_test 发表于 2015-4-9 12:24

看了下文件,只有第一位和第四位会出现英文x,没有其它字母

TOP

把完整的code.txt打包发上来,文件过大可上传网盘发分享链接

TOP

回复  sblisb


    字母的出现会导致 if %%b leq 999999999 判断失败,因为字母是大于数字的,你先想好 ...
Batcher 发表于 2015-4-9 09:43


因为原来的编码就是这样,第四位可能有字母,现在怎么改?再循环一次?

TOP

回复 6# sblisb


    字母的出现会导致 if %%b leq 999999999 判断失败,因为字母是大于数字的,你先想好逻辑上怎么处理吧,为什么要做这个判断呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复  sblisb


    传上来我试试
Batcher 发表于 2015-4-8 22:56

TOP

回复 4# sblisb


    传上来我试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

Batcher 发表于 2015-4-8 21:59

谢谢版主,但是有个文件名中带英文的不识别,比如“全部103x21020”

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=1 tokens=1*" %%a in ('type code.txt') do (
  4.     if %%b leq 999999999 (
  5.         set "dst=%%a"
  6.     ) else (
  7.         set "str=%%b"
  8.         set "str=!str:~-6!"
  9.         if exist "全部!str!*.xls" (
  10.             md "!dst!\%%a\"
  11.             move /y "全部!str!*.*" "!dst!\%%a\"
  12.         )
  13.     )
  14. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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
哪位帮一下,下载附件指点一下,谢了

TOP

返回列表