无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5305|回复: 17
打印 上一主题 下一主题

高手请帮忙看看这个批处理防删文件夹[已解决]

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-28 15:59:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我希望把这个批处理放到任何一个我需要的目录下,执行批处理后,在该目录下新建一个防删文件夹sm.并把该目录下所有的文件和文件夹复制到这个防删文件夹sm.中。用copy只能复制文件无法复制文件夹。用xcopy该如何处理?请高手指点!内容如下:

@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 正在复制文件...  
copy %CurDir% * sm..\>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

我在非常批处理论坛和dos联盟论坛发表帖子咨询也是没有很好的答案,希望无忧的高手们看看。

[ 本帖最后由 philon 于 2008-6-29 01:18 AM 编辑 ]
2#
发表于 2008-6-28 16:32:43 | 只看该作者
dos联盟论坛没有得到答案的话,估计这里也够呛。呵呵。


回复

使用道具 举报

3#
 楼主| 发表于 2008-6-28 16:36:17 | 只看该作者
咱这儿不是有一个葛明阳大侠吗??gmy?
回复

使用道具 举报

4#
发表于 2008-6-28 17:00:14 | 只看该作者
dos联盟应是国内dos方面水平最高的论坛吧。
呵呵。
回复

使用道具 举报

5#
发表于 2008-6-28 18:32:06 | 只看该作者
老早就在联盟看到你的帖子了,没回帖也是有原因的,没有完美的方法(注意:是完美,不是没办法)。

首先,我要说的是,建立这样的文件夹,复制文件是完美的,但如果有文件夹需要复制,那么会自动生成你所建畸形目录的派生目录,与你的畸形目录并排在同一目录。

我举个例子:如果你建立的是 “sm.” 畸形目录,那么就会生成 sm 文件夹。这时你可以随意打开这两个文件夹,但也可以随意删除一个,其实删除的还是 sm 文件夹。删除了sm文件夹也就删除了复制进去的所有文件和文件夹。我想,这就不是你所要达到的目的了。所以有了开头的话...
回复

使用道具 举报

6#
发表于 2008-6-28 18:38:17 | 只看该作者
这样也就没有了意义...
回复

使用道具 举报

7#
发表于 2008-6-28 18:38:33 | 只看该作者
我记得DOS的功能调用可以修改文件夹名让其变成有代点的。
至于P处理大虾,namejm就是其中一个,不过好久没看到人影了:)

[ 本帖最后由 netwinxp 于 2008-6-28 06:40 PM 编辑 ]
回复

使用道具 举报

8#
发表于 2008-6-28 18:47:30 | 只看该作者
原帖由 netwinxp 于 2008-6-28 06:38 PM 发表
我记得DOS的功能调用可以修改文件夹名让其变成有代点的。
至于P处理大虾,namejm就是其中一个,不过好久没看到人影了:)


namejm 不也是联盟过来的吗?
回复

使用道具 举报

9#
发表于 2008-6-28 18:48:53 | 只看该作者
联盟的前斑竹,人才也:)
回复

使用道具 举报

10#
发表于 2008-6-28 19:01:14 | 只看该作者
哈哈!这个嘛!我认为你同样人才也...
回复

使用道具 举报

11#
发表于 2008-6-28 19:04:55 | 只看该作者
承蒙兄弟看得起:)有空的话到水坛捧捧场,做了板猪只好到处拉人入伙^_^
回复

使用道具 举报

12#
发表于 2008-6-28 19:37:46 | 只看该作者
开始看到dos联盟那都没解决的问题,估计比较难,就没想试。

不过刚才试了一下,似乎问题还是很容易解决的。
只是效率有点低。需要复制两次文件,删除一次文件。
即多出一次复制与删除。

讲一下思路,我想脚本的书写对你应该很容易。

1,复制所有文件(含目录)到其他位置。
2,建畸形目录
3,复制到畸形目录
4,删除1中复制的文件
回复

使用道具 举报

13#
发表于 2008-6-28 19:46:13 | 只看该作者
贴个图。





snap0142.jpg (65.4 KB, 下载次数: 99)

snap0142.jpg
回复

使用道具 举报

14#
发表于 2008-6-28 21:08:38 | 只看该作者
联盟已经有人写出类似的方法了

[ 本帖最后由 xypcmac 于 2008-6-28 09:10 PM 编辑 ]
回复

使用道具 举报

15#
发表于 2008-6-28 21:25:54 | 只看该作者
去看了一下批处理高手fastslz的帖子,没仔细看。不过似乎没不要那么复杂。呵呵。
简单的几行就能搞定了。
回复

使用道具 举报

16#
发表于 2008-6-28 21:47:35 | 只看该作者
不错...!我也没有细看,老实说,也看不太懂。可能他想直接在当前目录复制同时过滤吧!

[ 本帖最后由 xypcmac 于 2008-6-28 09:51 PM 编辑 ]
回复

使用道具 举报

17#
 楼主| 发表于 2008-6-29 01:10:14 | 只看该作者
谢谢大家,联盟的朋友已经帮助我解决了。我自己稍微又改动了一下。
我的p文件为:防删文件夹.bat
要创建的文件夹叫:私密文件夹..\
把当前目录下除防删文件夹.bat和私密文件夹..\以外的所有文件、文件夹复制到私密文件夹..\中。我修改的了fastslz兄的代码如下:
@echo off&mode con cols=80 lines=12
setlocal enabledelayedexpansion
set CurDir=%~dp0
title 创建或删除一个私密文件夹
if not exist 私密文件夹..\nul (
md 私密文件夹..\
color 5a&cls&echo.&echo 私密文件夹已创建!当前目录下的所有内容将被拷贝到私密文件夹中...&ping/n 2 127.1>nul
for /f "delims=*" %%a in ('dir/ad/s/b "%CurDir%"^|findstr /i /v "\私密文件夹."') do md "%CurDir%私密文~1\%%~nxa"
for /f "delims=*" %%i in ('dir/a-d/s/b "%CurDir%"^|findstr /i /v "\防删文件夹. "') do (
    set "SourceFile=%%i"
    set "DestinationFile=!SourceFile:%CurDir%=!"
    call :xxxx "!SourceFile!" "%CurDir%私密文~1\!DestinationFile!"
)
ping/n 2 127.1>nul
start "" "%CurDir%私密文件夹..\"
) else (
rd /s/q 私密文件夹..\
color 5e&cls&echo.&echo 私密文件夹已删除!&ping/n 2 127.1>nul
)
color 5b&cls&echo.&echo 重复执行重新创建或删除!&ping/n 3 127.1>nul
exit

:xxxx
cls&echo 正在复制文件%status%
xcopy /y/h/r "%~1" "%~dp2" >nul
set status=%status%.
goto:eof

注,虽然没什么大的用处,但使我学习了一些东西,再次感谢几位热心的朋友!

[ 本帖最后由 philon 于 2008-6-29 01:14 AM 编辑 ]
回复

使用道具 举报

18#
发表于 2008-8-5 03:56:15 | 只看该作者
楼主,建类似的文件夹实际没有意义!!!

会做的人都能打开,我是不会用!!!

[ 本帖最后由 jh1688 于 2008-8-5 04:05 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-29 06:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表