

CODE: [Copy to clipboard]以上代码的使用方法是保存以上代码为“副本.bat”,然后将文件放到系统“SendTo”即“发送到”菜单,一般此路径为"C:\Documents and Settings\Administrator\SendTo",这里顺便提醒一点,这个路径是可以通过修改注册表或是使用某些软件进行自定义的::此程序用来快速创建文件或文件夹的副本,省去复制粘贴两步操作
@echo off
set path=%SystemRoot%;%SystemRoot%\system32;%SystemRoot%\System32\Wbem
:star
if "%~1" == "" goto :EOF
if not exist "%~1" echo 路径错误!&pause&exit
set t=0
::判断是否为目录
cd /d "%~1" 2>nul
if ERRORLEVEL 1 (
call :file "%~1"
)else (
call :folder "%~1"
)
shift
goto star
::处理文件
:file
pushd "%~dp1"
set /a "t+=1"
if exist "%~n1_%t%%~x1" (popd&goto file)
copy "%~nx1" "%~n1_%t%%~x1" /y >nul
POPD
goto :EOF
::处理文件夹
:folder
pushd "%~dp1"
set /a "t+=1"
if exist "%~nx1_%t%" (popd&goto folder)
echo "%~nx1_%t%"&pause
xcopy /s /e /r /h /y "%~n1" "%~n1_%t%\" >nul 2>nul
POPD
goto :EOF
这种文件夹够损的吧!能用到的特殊字符都用到了
,虽是少见,但也不排除这种可能~~这也是我们这些编写程序的人该有的品质——做到"尽善尽美"
CODE: [Copy to clipboard]为了更好的理解,我还另外写了个演示:::此程序用来快速创建文件或文件夹的副本,省去复制粘贴两步操作
@echo off
set path=%SystemRoot%;%SystemRoot%\system32;%SystemRoot%\System32\Wbem
:star
if "%~1" == "" goto :EOF
if not exist "%~1" echo 路径错误!&pause&exit
set t=0
::判断是否为目录
cd /d "%~1" 2>nul
if ERRORLEVEL 1 (
pushd "%~dp1"
set /a "t+=1"
if exist "%~n1_%t%%~x1" (popd&goto file)
copy "%~nx1" "%~n1_%t%%~x1" /y >nul
POPD
)else (
pushd "%~dp1"
set /a "t+=1"
if exist "%~nx1_%t%" (popd&goto folder)
xcopy /s /e /r /h /y "%~n1" "%~n1_%t%\" >nul 2>nul
POPD
)
shift
goto star
CODE: [Copy to clipboard]::功能:此程序用来演示不同场合参数格式化的区别,它告诉我们:在批处理里面,为了提高程序的兼容性,能不用子函数的地方尽量不用
::用法:新建一个名为“~!@# $%^&”的文件夹,然后将其鼠标左键按住拖到此程序图标上运行即可
@echo off
if not "%~1"=="" echo "%~n1"
set a="~!@# $%^&"
echo "%a:"=%"
call :folder "%a:"=%"
goto :EOF
:folder
echo "%~n1"
pause
goto :EOF
| 欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) | Powered by Discuz! 2.5 |