中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 20:13
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]移走目录下除.td和.cfg后缀的文件
可打印版本  2,100 / 8
第1楼 bsmqu 发表于 2008-05-28 11:33
初级用户 发帖 6 积分 114
[求助]移走目录下除.td和.cfg后缀的文件
[求助]移走目录下除.td和.cfg后缀的文件

我知道要先找到除这两个后缀多外的文件名,但我不知道怎么做了
请各位指教,谢谢
第2楼 bat-zw 发表于 2008-05-28 12:36
金牌会员 发帖 1,276 积分 3,105
假设是从d:\test移到d:\temp


[ Last edited by zw19750516 on 2008-5-28 at 01:08 PM ]
第3楼 bsmqu 发表于 2008-05-28 16:04
初级用户 发帖 6 积分 114
我没有别的,就只有说声谢谢了。
不过这个处理会将子目录下的文件也移走, 建议在dir /s /a-d /b时改为dir /a-d /s
第4楼 bat-zw 发表于 2008-05-28 16:17
金牌会员 发帖 1,276 积分 3,105
Originally posted by bsmqu at 2008-5-28 16:04:
我没有别的,就只有说声谢谢了。
不过这个处理会将子目录下的文件也移走, 建议在dir /s /a-d /b时改为dir /a-d /s

我以为楼主是要移走所有的,所以我加了/s,如不要移走子目录中的去掉/s就可以了。

[ Last edited by zw19750516 on 2008-5-28 at 04:23 PM ]
第5楼 easonL 发表于 2008-05-28 16:46
初级用户 发帖 56 积分 118 来自 南京
Originally posted by zw19750516 at 2008-5-28 04:17 PM:

我以为楼主是要移走所有的,所以我加了/s,如不要移走子目录中的去掉/s就可以了。

[ Last edited by zw19750516 on 2008-5-28 at 04:23 PM ]



为什么我运行这个会出错?错误信息是:
D:\batch>moveFile
The system cannot find the file specified.
The system cannot find the file specified.
Press any key to continue . . .


另外'dir /a-d /s也会出错:

D:\batch>moveFile
The system cannot find the file specified.
The system cannot find the file specified.
The filename, directory name, or volume label syntax is incorrect.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the file specified.
The filename, directory name, or volume label syntax is incorrect.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the file specified.
The filename, directory name, or volume label syntax is incorrect.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the file specified.
" Total Files Listed:" is not a recognized device.
" Total Files Listed:" is not a recognized device.
The filename, directory name, or volume label syntax is incorrect.
The system cannot find the file specified.
The system cannot find the file specified.
Press any key to continue . . .

给解析下,谢谢
第6楼 bat-zw 发表于 2008-05-28 17:24
金牌会员 发帖 1,276 积分 3,105
D:\batch\test\temp\这个路径是不是实际存在的啊。
第7楼 easonL 发表于 2008-05-28 17:31
初级用户 发帖 56 积分 118 来自 南京
Originally posted by zw19750516 at 2008-5-28 05:24 PM:
D:\batch\test\temp\这个路径是不是实际存在的啊。


存在的呢。我运行
@echo off&setlocal enabledelayedexpansion
set str=.td .cfg

for /f "delims=" %%i in ('dir/b/a-d "D:\batch\test\*.*"') do (
set "flag="
for %%a in (%str%) do if "%%a"=="%%~xi" set flag=A
if not defined flag move /y "%%i" D:\batch\test\temp\
)
pause
是可以的!非常奇怪,去掉/s就不行了
-------------------------------------------------------------
另外,我测试

for /f "delims=" %%i in ('dir/b/a-d "D:\batch\test\*.*"') do (
echo %%~nxi
)
是能遍历test底下的文件的呢,很奇怪哦
第8楼 easonL 发表于 2008-05-28 17:32
初级用户 发帖 56 积分 118 来自 南京
搞错了,应该是运行
for /f "delims=" %%i in ('dir/b/a-d/s "D:\batch\test\*.*"') do (
set "flag="
for %%a in (%str%) do if "%%a"=="%%~xi" set flag=A
if not defined flag move /y "%%i" D:\batch\test\temp\
)
pause
是可以的
第9楼 easonL 发表于 2008-05-28 17:36
初级用户 发帖 56 积分 118 来自 南京
按理说,这个'dir/b/a-d "D:\batch\test\*.*"'指令是没有问题的啊!
现在情况是文件夹test底下有几个文件,它就显示几句
The system cannot find the file specified.
错误提示

很奇怪,什么原因呢,为什么说路径不对呢?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023