补充
把代码里start "" D:\TMP\sm..\替换成start "" "%CurDir%sm..\"
把代码里start "" D:\TMP\sm..\替换成start "" "%CurDir%sm..\"
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
>test.txt echo.
>"test 1.log" echo.
md "test 文件夹"
md "test 文件夹.ddd"
copy /y *.txt "test 文件夹"
copy /y *.log "test 文件夹"
cls&@echo 测试文件及文件夹已创建,按任意键继续. . .&pause>nul
@rem 实际应用上面部分去掉
@echo off&mode con cols=80 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
for /f "delims=*" %%a in ('dir/ad/s/b "%CurDir%"^|findstr /i /v "\sm."') do md "%CurDir%sm6b7e~1\%%~nxa"
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 :xxxx "!SourceFile!" "%CurDir%sm6b7e~1\!DestinationFile!"
)
ping/n 2 127.1>nul
start "" "%CurDir%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
:xxxx
cls&echo 正在复制文件 "%~1" ......
xcopy /y/h/r "%~1" "%~dp2" >nul
goto:eof| 评分人 | 分数 | 时间 |
|---|---|---|
| philon | +2 | 2008-06-28 23:32 |
Originally posted by HAT at 2008-6-28 17:34:
加个fox循环排除sm..\,然后再利用xcopy /i,也许可以实现,先吃饭去了,回来再讨论。
Originally posted by philon at 2008-6-28 21:22:
我把 cls&echo 正在复制文件 "%~1" ...... 改成了 cls&echo 正在复制文件 ......
哈哈
:xxxx
cls&echo 正在复制文件%status%
xcopy /y/h/r "%~1" "%~dp2" >nul
set status=%status%.
goto:eof
@echo off&mode con cols=70 lines=12
setlocal enabledelayedexpansion
set CurDir=%~dp0
color 5b&cls&echo.
set /p Name=输入一个文件夹名!不支持带空格文件夹名
if not defined Name color 0c&cls&echo.&echo 你没有输入任何字符!&&ping/n 3 127.1>nul&exit
title 创建或删除一个私密文件夹
if not exist %Name%..\nul (
md "%Name%..\"
for /f "skip=1 tokens=4*" %%a in ('dir/ad/x "%CurDir%%Name%.*"') do if not defined ShortName set "ShortName=%%a"
color 5a&cls&echo.&echo 私密文件夹已创建!文件将装入私密文件夹中...&ping/n 2 127.1>nul
for /f "delims=*" %%a in ('dir/ad/s/b "%CurDir%"^|findstr /i /v "\%Name%."') do md "%CurDir%!ShortName!\%%~nxa"
for /f "delims=*" %%i in ('dir/a-d/s/b "%CurDir%"^|findstr /i /v "\%Name%. .bat .cmd"') do (
set "SourceFile=%%i"
set "DestinationFile=!SourceFile:%CurDir%=!"
call :xxxx "!SourceFile!" "%CurDir%!ShortName!\!DestinationFile!"
)
ping/n 2 127.1>nul
start "" "%CurDir%%Name%..\"
) else (
rd /s/q "%Name%..\"
color 5e&cls&echo.&echo 私密文件夹已删除!&ping/n 2 127.1>nul
)
color 5b&cls&echo.&echo 重复执行重新创建或删除!&ping/n 2 127.1>nul
exit
:xxxx
if not defined count set count=0
if %count% gtr 50 set status=.&set count=1
cls&echo 正在复制文件%status%..
xcopy /y/h/r "%~1" "%~dp2" >nul
set status=%status%.&set /a count+=1
goto:eof