关于批处理中通配符的问题~

我要写一个批处理,在我的文件夹里面有3个文件,分别是N66ff.200,n66mm.200,n66aa.200我是这么写的,@ifexistPOOL\*ff.2*copy... 我要写一个批处理,
在我的文件夹里面有3个文件,分别是N66ff.200,n66mm.200,n66aa.200
我是这么写的,
@if exist POOL\*ff.2* copy POOL\*ff.2* /B NB\NB.BIN /B /V /Y
@if exist POOL\*mm.2* copy POOL\*mm.2* /B NB\NB.BIN /B /V /Y
@if exist POOL\*aa.2* copy POOL\*aa.2* /B NB\NB.BIN /B /V /Y
可是运行下来会把3个文件合并成一个大文件只有我把命令改成
@if exist POOL\*ff.2* copy POOL\?????ff.2* /B NB\NB.BIN /B /V /Y
这样才可以,很奇怪,请高手赐教,可否用*来实现呢`~
写错了
@if exist POOL\*ff.2* copy POOL\*ff.2* /B NB\NB_f.BIN /B /V /Y
@if exist POOL\*mm.2* copy POOL\*mm.2* /B NB\NB_m.BIN /B /V /Y
@if exist POOL\*aa.2* copy POOL\*aa.2* /B NB\NB_a.BIN /B /V /Y
是这样的,感谢~
展开
 我来答
nnffnn
2010-04-02 · TA获得超过4.3万个赞
知道大有可为答主
回答量:1.6万
采纳率:29%
帮助的人:1.7亿
展开全部
通配符使用错误,*代表任意个任意字符,也就是*表示前面的所有8个字符或者后面的所有3个字符。用了*后面再跟字符,那些字符就是多余的了。所以星号用在后面,用在前面要使用代表任意单个字符?号。
例,
@if exist POOL\???ff.2* copy POOL\???.2* /B NB\NB.BIN /B /V /Y

其他语句也是如此。
匿名用户
2010-04-02
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b POOL\* ') do (
set name=%%~ni
if exist NB\NB_!name:~-1!.BIN echo 发现NB\NB_!name:~-1!.BIN是否替换。
echo.
pause>nul
copy POOL\%%i NB\NB_!name:~-1!.BIN
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式