中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 15:43
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 高手请帮忙看看这个批处理防删文件夹
可打印版本  4,964 / 46
第31楼 fastslz 发表于 2008-06-28 19:15
铂金会员 发帖 2,315 积分 5,493 来自 上海
补充
把代码里start "" D:\TMP\sm..\替换成start "" "%CurDir%sm..\"
第32楼 philon 发表于 2008-06-28 20:04
初级用户 发帖 19 积分 42
楼上,我测试了复制.cmd,还是没有把空文件夹复制到sm..\中

[ Last edited by philon on 2008-6-28 at 08:24 PM ]
第33楼 HAT 发表于 2008-06-28 20:46
版主 发帖 5,017 积分 9,023
用/e也不行?

/E Copies directories and subdirectories, including empty ones.
Same as /S /E. May be used to modify /T.
第34楼 philon 发表于 2008-06-28 20:49
初级用户 发帖 19 积分 42
是的,加了/e后,也没有复制过去,而且出现了不能进行周期性复制的提示,复制过去的只有非空目录和它里面的文件,当前目录下的文件都没有复制过去
第35楼 fastslz 发表于 2008-06-28 21:00
铂金会员 发帖 2,315 积分 5,493 来自 上海
有必要处理空文件夹吗?
第36楼 philon 发表于 2008-06-28 21:22
初级用户 发帖 19 积分 42
fastslz
你真是高手,非常感谢!这次好了。达到了我预想的目的!再次感谢~
我把 cls&echo 正在复制文件 "%~1" ...... 改成了 cls&echo 正在复制文件 ......
哈哈
第37楼 xypcmac 发表于 2008-06-28 21:31
初级用户 发帖 80 积分 167
Originally posted by HAT at 2008-6-28 17:34:
加个fox循环排除sm..\,然后再利用xcopy /i,也许可以实现,先吃饭去了,回来再讨论。


先把要复制进 “sm.” 文件夹的文件、文件夹复制到其它地方然后再复制回来也一样。
第38楼 fastslz 发表于 2008-06-28 22:08
铂金会员 发帖 2,315 积分 5,493 来自 上海
Originally posted by philon at 2008-6-28 21:22:

我把 cls&echo 正在复制文件 "%~1" ...... 改成了 cls&echo 正在复制文件 ......
哈哈

第39楼 philon 发表于 2008-06-28 22:49
初级用户 发帖 19 积分 42
再请教一下,我用您的代码后,不能更改要创建的文件夹名字?sm不能换成别的名字?比如wd或者干脆叫私密文件夹吗?是不是和那个6b7e~1有关啊,它是干吗用的?等待您的答复。
第40楼 HAT 发表于 2008-06-28 23:40
版主 发帖 5,017 积分 9,023
汗水,你还没有搞清楚sm6b7e~1是怎么来的?
12楼讲的很明白啊,dir /x
第41楼 xypcmac 发表于 2008-06-28 23:44
初级用户 发帖 80 积分 167
看图:


第42楼 philon 发表于 2008-06-28 23:48
初级用户 发帖 19 积分 42
是啊,就是没法把sm改成别的名字。
第43楼 fastslz 发表于 2008-06-28 23:52
铂金会员 发帖 2,315 积分 5,493 来自 上海


当Name变量没有定义或定义为空格字符时 rd /s/q %Name%..\将执行删除父目录里所有文件夹,任何损失和本人无关,所以请不要随便更改代码
第44楼 quya 发表于 2008-06-28 23:53
高级用户 发帖 172 积分 558 来自 江苏
其实这种文件夹也好删除的, 称不上私密文件夹。

因为就像12楼说的, dir/x 什么都出来了。

比如 md g..\ 其实就可以 cd ge276~1, 然后随便你怎么搞了。道理和 sm6b7e~1一样
第45楼 philon 发表于 2008-06-29 01:15
初级用户 发帖 19 积分 42
感谢hat兄,感谢fastslz兄,感谢12楼的朋友。
我终于做成了我需要的p文件。我的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
注,虽然没什么大的用处,但使我学习了一些东西,再次感谢几位热心的朋友!
上一页  1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023