中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手请帮忙看看这个批处理防删文件夹
« [1] [2] [3] [4] »
作者:
标题: 高手请帮忙看看这个批处理防删文件夹 上一主题 | 下一主题
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by wingface at 2008-6-27 11:44:
copy %CurDir% * sm6b7e~1>nul 2>nul

别问我为什么,自己用dir /x 看一下就知道了

厉害,这样的东西都能被发现,佩服

2008-6-27 23:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by HAT at 2008-6-27 20:27:
用12楼的方法可以用xcopy操作畸形目录

是可以操作,但无论copy还是xcopy都不能把文件夹复制到sm.中!!
郁闷~~

2008-6-28 16:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 18 楼』:  



  Quote:
Originally posted by philon at 2008-6-28 04:13 PM:

是可以操作,但无论copy还是xcopy都不能把文件夹复制到sm.中!!
郁闷~~

我测试过,可以。
把你的xcopy命令贴出来看看。



2008-6-28 16:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by HAT at 2008-6-28 16:18:

我测试过,可以。
把你的xcopy命令贴出来看看。

hat兄,你看看:
@echo off&mode con cols=50 lines=12
title 创建或删除一个私密文件夹
if not exist sm..\nul (
md sm..\
color 5a&cls&echo.&echo 私密文件夹已创建!文件将装入私密文件夹中...&ping/n 2 127.1>nul
echo 正在复制文件...  
xcopy %CurDir% * sm6b7e~1>nul 2>nul
) else (
rd /s/q sm..\
color 5e&cls&echo.&echo 私密文件夹已删除!&ping/n 2 127.1>nul
)
color 5b&cls&echo.&echo 重复执行重新创建或删除!&ping/n 2 127.1>nul

2008-6-28 16:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 20 楼』:  

多看看xcopy的帮助^_^

  /E           Copies directories and subdirectories, including empty ones.
               Same as /S /E. May be used to modify /T.



2008-6-28 16:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 21 楼』:  

xcopy %CurDir% * sm6b7e~1/e>nul 2>nul
xcopy %CurDir% * sm6b7e~1/s/e>nul 2>nul
xcopy %CurDir% * sm6b7e~1/s/e/t>nul 2>nul
以上都不行啊!

2008-6-28 16:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 22 楼』:  

look





2008-6-28 16:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 23 楼』:  

当然,指定源文件的绝对路径是可以复制所有文件和文件夹的,但,我要它复制当前目录下的所有文件和文件夹,是不是xcopy对%CurDir%不识别呢?

2008-6-28 16:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 24 楼』:  

HAT兄,还在吗?请解答一下。

2008-6-28 16:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 25 楼』:  

sm..\也在当前目录下,你总不能指望把一个文件夹拷贝到它在身里面吧?

Cannot perform a cyclic copy



2008-6-28 17:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 26 楼』:  

也是啊,看来我开头提出的那个要求是无法实现了。

2008-6-28 17:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
philon
初级用户





积分 42
发帖 19
注册 2005-12-23
状态 离线
『第 27 楼』:  

其实复制sm..\自身是没有意义的。那有没有可能把除sm..\以外的其他所有文件夹复制到sm..\里呢?
如果能,需要加入哪些语句。还望HAT兄帮忙。

[ Last edited by philon on 2008-6-28 at 05:24 PM ]

2008-6-28 17:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 28 楼』:  

xcopy只支持文件例外,不支持文件夹例外,想其它方法吧。



2008-6-28 17:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 29 楼』:  

加个fox循环排除sm..\,然后再利用xcopy /i,也许可以实现,先吃饭去了,回来再讨论。



2008-6-28 17:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 30 楼』:  

复制方式.cmd
>test.txt echo.
>"test 1.log" echo.
md "test 文件夹"
copy /y *.txt "test 文件夹"
copy /y *.log "test 文件夹"
cls&@echo 测试文件及文件夹已创建,按任意键继续. . .&pause>nul
@rem 实际应用上面部分去掉

@echo off&rem mode con cols=50 lines=12
setlocal enabledelayedexpansion
set CurDir=%~dp0
title 创建或删除一个私密文件夹
if not exist sm..\nul (
md sm..\
color 5a&cls&echo.&echo 私密文件夹已创建!文件将装入私密文件夹中...&ping/n 2 127.1>nul
echo 正在复制文件...  
for /f "delims=*" %%i in ('dir/a-d/s/b "%CurDir%"^|findstr /i /v "\sm. .bat .cmd"') do (
    set "SourceFile=%%i"
    set "DestinationFile=!SourceFile:%CurDir%=!"
    call :xxx "%CurDir%sm6b7e~1\!DestinationFile!"
    call :xxxx "!SourceFile!" "%CurDir%sm6b7e~1\!DestinationFile!"
)
ping/n 2 127.1>nul
start "" D:\TMP\sm..\
) else (
rd /s/q sm..\
color 5e&cls&echo.&echo 私密文件夹已删除!&ping/n 2 127.1>nul
)
color 5b&cls&echo.&echo 重复执行重新创建或删除!&ping/n 2 127.1>nul
exit

:xxx
md "%~dp1" 2>nul
goto:eof

:xxxx
xcopy /y/h/r "%~1" "%~dp2" >nul
goto:eof
移动方式.cmd
>test.txt echo.
>"test 1.log" echo.
md "test 文件夹"
copy /y *.txt "test 文件夹"
copy /y *.log "test 文件夹"
cls&@echo 测试文件及文件夹已创建,按任意键继续. . .&pause>nul
@rem 实际应用上面部分去掉

@echo off&rem mode con cols=50 lines=12
setlocal enabledelayedexpansion
set CurDir=%~dp0
title 创建或删除一个私密文件夹
if not exist sm..\nul (
md sm..\
color 5a&cls&echo.&echo 私密文件夹已创建!文件将装入私密文件夹中...&ping/n 2 127.1>nul
echo 正在复制文件...  
for /f "delims=*" %%i in ('dir/a-d/s/b "%CurDir%"^|findstr /i /v "\sm. .bat .cmd"') do (
    set "SourceFile=%%i"
    set "DestinationFile=!SourceFile:%CurDir%=!"
    call :xxx "%CurDir%sm6b7e~1\!DestinationFile!"
    move /y "!SourceFile!" "%CurDir%sm6b7e~1\!DestinationFile!"
)
start "" D:\TMP\sm..\
) else (
rd /s/q sm..\
color 5e&cls&echo.&echo 私密文件夹已删除!&ping/n 2 127.1>nul
)
color 5b&cls&echo.&echo 重复执行重新创建或删除!&ping/n 2 127.1>nul
pause

exit
:xxx
md "%~dp1" 2>nul
goto:eof




第一高手    第二高手

2008-6-28 19:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: