bat 批处理相关知识

批处理相关知识在此汇总。不断更新中..

 

1 %~dp0

参考文章:http://www.cnblogs.com/smwikipedia/archive/2009/03/30/1424749.html

更改当前目录为批处理本身的目录
有些晕吧?不急,我举例

比如你有个批处理a.batD:\qq文件夹下

a.bat
内容为

cd /d %~dp0
在这里

cd /d %~dp0
的意思就是
cd /d d:\qq
%0
代表批处理本身
d:\qq\a.bat
~dp
是变量扩充

d
既是扩充到分区号
d:
p
就是扩充到路径
\qq
dp
就是扩充到分区号路径 d:\qq

 

 

2 /F /S /Q什么意思

/f /s /q /as都是批处理的参数,比如del 后面可以添加/f /s /q
如果想知道这些有什么用的话dos下输入:
del /?搜索
回车就会显示了。

帮助显示如下:

e:\mail>del /?
删除一个或数个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或多个文件或者目录列表。
                通配符可用来删除多个文件。
                如果指定了一个目录,该目录中的所
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  /A            根据属性选择要删除的文件
  属性          R  只读文件                     S  系统文件
                H  隐藏文件                     A  存档文件
                I  无内容索引文件               L  重分析点
                -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经

 

3 xcopy

参考文章http://daniel.p.yao.blog.163.com/blog/static/34216355200782825469/

XCOPY——目录复制命令
1.功能:复制指定的目录和目录下的所有文件连同目录结构。
2.类型:外部命令
3.格式:XCOPY [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E]
4.使用说明:
(1)XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝隐藏文件和系统文件;
(2)使用时源盘符、源目标路径名、源文件名至少指定一个;
(3)选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数,否则/S不会拷贝空目录,
若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;
(4)选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。

 4 for循环的一篇文章讲解

http://kdisk-sina-com.iteye.com/blog/435099

讲的确实可以

@echo off


echo "Delete files to reduce data size..."


set CURRENT=%~dp0
SET FOLDER_DELETE=%CURRENT%data_delete
SET FOLDER_DATA=%CURRENT%data


echo "Folder to delete: %FOLDER_DATA%"
echo "Sample folder: %FOLDER_DELETE%"


cd "%FOLDER_DELETE%"


setlocal EnableDelayedExpansion
for /L %%n in (1 1 500) do if "!__cd__:~%%n,1!" neq "" set /a "len=%%n+1"
setlocal DisableDelayedExpansion
for /r . %%g in (*.*) do (
  set "absPath=%%g"
  setlocal EnableDelayedExpansion
  set "relPath=!absPath:~%len%!"
  rem echo !relPath!
  echo %FOLDER_DATA%\!relPath!
  IF EXIST "%FOLDER_DATA%\!relPath!" DEL /Q /F %FOLDER_DATA%\!relPath!
  
  setlocal DisableDelayedExpansion
  endlocal
  
)


endlocal


cd..


echo "Finished." 

5  setlocal enabledelayedexpansion

批处理之坑爹的感叹号和变量延迟扩展


http://www.cnblogs.com/ini_always/archive/2012/02/16/2355031.html

http://94here.blog.51cto.com/696155/162695


bat批处理 if 命令示例详解

http://www.jb51.net/article/14986.htm

7 Short Command Line Tips

http://www.robvanderwoude.com/shorts.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值