标题: [文件操作] 【已解决】批量新建文件夹中如何把转义空格作为字符串而非分隔符 [打印本页]
作者: kid_en 时间: 2017-1-17 14:03 标题: 【已解决】批量新建文件夹中如何把转义空格作为字符串而非分隔符
本帖最后由 kid_en 于 2017-1-18 18:44 编辑
各位大神,刚开始研究批处理。自己看了一些资料,然后修改了一个代码。工作上能用到。可是由于很多dwg的文件名都是带空格的,识别不了。
现在想要在下面的这个代码的基础上改正一下,把转义空格作为字符串而非分隔符。- @echo off & setlocal enabledelayedexpansion
- for %%s in (*.dwg ) do (md xx
- move %%s xx\%%s
- cd xx
- cd..
- ren "xx" %%s
- )
- 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
- @echo off
- setlocal enabledelayedexpansion
- for %%s in (*.dwg ) do (
- md "xx"
- move "%%s" "xx\"
- ren "xx" "%%s"
- )
- pause
复制代码
作者: kid_en 时间: 2017-1-18 17:13
回复 5# GNU
感谢啊~~不过我早上已经自己想了很久已经想到办法解决了。
现在还有一个问题,相对应的jpg,png,xls文件到移动到相对应的文件夹里面,然后有一个代码是:- @echo off
- for /f %%a in ('dir /o-n /b /ad') do (
- move "%%a*.jpg" "%%a\" || move "%%a*.png" "%%a\"
- )
- pause
复制代码
可是移动文件的时候,代码只能识别单段文字的文件夹,对于后面有复杂的文件名就识别不了了。具体情况入下:
javascript:;
后面没有中文字体的文件名会自动归档,可是有文字的就识别不了,求大神解答~~~
作者: GNU 时间: 2017-1-18 17:28
回复 6# kid_en - @echo off
- for /f %%a in ('dir /o-n /b /ad') do (
- move "%%a*.jpg" "%%a\"
- move "%%a*.png" "%%a\"
- )
- 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
- @echo off
- for /f "tokens=1,2 delims= " %%1 in ('dir /ad/b')do (
- copy "%%1-*.*" "%%1 %%2\*"
- )
- 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 - @echo off
- for /f "delims=" %%i in ('dir /ad/b')do (
- copy "%%i-*.*" "%%i\*"
- copy "%%i.*.*" "%%i\*"
- )
- del *.jpg *.png
- 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 - @echo off
- for /f "delims=" %%i in ('dir /ad /b') do (
- move "%%i-*.*" "%%i\"
- move "%%i.*.*" "%%i\"
- )
- pause
复制代码
作者: GNU 时间: 2017-1-19 12:56
回复 12# kid_en
如果下次提问需要上传大附件的话:请把测试数据和测试代码传到网盘
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |