Board logo

标题: [文件操作] 【已解决】批量新建文件夹中如何把转义空格作为字符串而非分隔符 [打印本页]

作者: kid_en    时间: 2017-1-17 14:03     标题: 【已解决】批量新建文件夹中如何把转义空格作为字符串而非分隔符

本帖最后由 kid_en 于 2017-1-18 18:44 编辑

各位大神,刚开始研究批处理。自己看了一些资料,然后修改了一个代码。工作上能用到。可是由于很多dwg的文件名都是带空格的,识别不了。
现在想要在下面的这个代码的基础上改正一下,把转义空格作为字符串而非分隔符。
  1. @echo off & setlocal enabledelayedexpansion
  2. for %%s in (*.dwg ) do (md xx
  3.                              move %%s xx\%%s
  4.                              cd xx
  5.                              cd..
  6.                              ren "xx" %%s
  7.                             )
  8. pause
复制代码

作者: 回家路上    时间: 2017-1-17 14:29

双引号括起来
作者: kid_en    时间: 2017-1-17 15:31

回复 2# 回家路上


    我括了,可是括不对地方= =,试了好多个地方好像都不对。。
作者: kid_en    时间: 2017-1-18 09:39

回复 2# 回家路上


    能指导一下么?
作者: GNU    时间: 2017-1-18 13:06

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%s in (*.dwg ) do (
  4.     md "xx"
  5.     move "%%s" "xx\"
  6.     ren "xx" "%%s"
  7. )
  8. pause
复制代码

作者: kid_en    时间: 2017-1-18 17:13

回复 5# GNU


    感谢啊~~不过我早上已经自己想了很久已经想到办法解决了。

现在还有一个问题,相对应的jpg,png,xls文件到移动到相对应的文件夹里面,然后有一个代码是:
  1. @echo off
  2. for /f %%a in ('dir /o-n /b /ad') do (
  3. move "%%a*.jpg" "%%a\" || move "%%a*.png" "%%a\"
  4. )
  5. pause
复制代码
可是移动文件的时候,代码只能识别单段文字的文件夹,对于后面有复杂的文件名就识别不了了。具体情况入下:
javascript:;
后面没有中文字体的文件名会自动归档,可是有文字的就识别不了,求大神解答~~~
作者: GNU    时间: 2017-1-18 17:28

回复 6# kid_en
  1. @echo off
  2. for /f %%a in ('dir /o-n /b /ad') do (
  3.     move "%%a*.jpg" "%%a\"
  4.     move "%%a*.png" "%%a\"
  5. )
  6. pause
复制代码

作者: kid_en    时间: 2017-1-19 08:40

回复 7# GNU


    和我的代码一样,不行
作者: GNU    时间: 2017-1-19 09:34

回复 8# kid_en


    请把测试数据和测试代码传到网盘,我试试。
作者: Nsqs    时间: 2017-1-19 10:00

  1. @echo off
  2. for /f "tokens=1,2 delims= " %%1 in ('dir /ad/b')do (
  3. copy "%%1-*.*" "%%1 %%2\*"
  4. )
  5. rem del *.jpg *.png
复制代码

作者: kid_en    时间: 2017-1-19 10:19

回复 10# Nsqs


    一闪而过。。
作者: kid_en    时间: 2017-1-19 10:19

回复 9# GNU


    文件压缩成7Z。只有328 KB,不知道系统提示文件过大上传不了。。。
作者: kid_en    时间: 2017-1-19 10:45

本帖最后由 kid_en 于 2017-1-19 10:48 编辑

回复 10# Nsqs
  1. @echo off
  2. for /f "delims=" %%i in ('dir /ad/b')do (
  3. copy "%%i-*.*" "%%i\*"
  4.         copy "%%i.*.*" "%%i\*"
  5. )
  6. del *.jpg *.png
  7. pause
复制代码
在这个基础上改了一点能用,感谢~~
作者: Nsqs    时间: 2017-1-19 10:45

回复 11# kid_en


    加pause
作者: kid_en    时间: 2017-1-19 11:04

回复 14# Nsqs


    不过能不能在这个基础上增加一条:如果没有复制成功进去文件夹的话,不删除jpg或xls文件,我怕误删了一些文件..
作者: GNU    时间: 2017-1-19 12:55

回复 15# kid_en
  1. @echo off
  2. for /f "delims=" %%i in ('dir /ad /b') do (
  3.     move "%%i-*.*" "%%i\"
  4.     move "%%i.*.*" "%%i\"
  5. )
  6. pause
复制代码

作者: GNU    时间: 2017-1-19 12:56

回复 12# kid_en


    如果下次提问需要上传大附件的话:请把测试数据和测试代码传到网盘




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2