Hello World - Bat
type: channel
link: https://blog.ricken.cn/tag/Bat/
items: Bat文件的互相调用
items: Bat复制命令

Bat文件的互相调用
type: item
date: 2021-05-19T07:52:00+00:00
description: 情景一：两个bat文件在同一个目录下有时候我们需要在一个bat文件中调用另一个bat文件，比如我们想在a.bat中调用b.bat，如下。a.bat@echo offecho I am a.bat…echo now run the b.batcall b.batecho overb.bat@echo offecho I am b.bat…在cmd窗口中执行a.bat，结果如下：I am a.bat…now run the b.batI am b.bat…over通过call命令，我们可以调用另一个bat文件，执行完会再返回到原本的bat文件中继续执行。但是这里有个问题，就是两个bat文件必须在同一个目录下，否则会找不到要call的bat文件。情景二：两个bat文件不在同一个目录下假如要call的bat文件在其他目录，我们可以在call之前，先使用cd /d 目录来进入相应的目录，接着再call就行了，如下：a.bat@echo offecho I am a.bat…echo now run the b.batcd /d D:\testcall b.batecho overb.bat@echo offecho I am b.bat…执行后得到结果如下：I am a.bat…now run the b.batI am b.bat…over不过，这里需要注意的是，此时执行完命令的cmd窗口的当前目录是b.bat所在的目录了，而不是a.bat的目录。情景三：开启一个新的cmd窗口来运行另一个bat文件假如我们希望另外启动一个新的cmd窗口来运行b.bat，可以通过start cmd命令来实现，如下：a.bat@echo offecho I am a.bat…echo now run the b.batcd /d D:\teststart “” cmd /k call b.batecho overb.bat@echo offecho I am b.bat…执行后得到结果如下：原本的cmd窗口中：I am a.bat…now run the b.batover新的cmd窗口中：I am b.bat…这里简单解释下该命令的参数：start “” cmd /k call b.bat“”是一段字符串，代表新打开的cmd窗口的名字，可以随便起名。/k是表示新打开的cmd窗口在执行完命令后保存打开状态，如果希望执行完就关闭窗口就使用/ccall b.bat表示call命令，即调用b.bat文件；该命令可以用”“括起来，即：”call b.bat”

Bat复制命令
type: item
date: 2021-05-19T06:14:00+00:00
description: 命令行复制COPYcopy C:\old.txt D:\new.txt这是最基本的复制功能命令。它允许你将一个路径下的文件快速复制到另一个路径中。你也可以使用这个命令合并文件。其中xxx.xxx可以使用通配符*.*匹配所有文件C:\Users\desktop\*.* D:\backupXCOPYxcopy命令允许你复制文件和目录树。这个命令更适用于复制文件夹。xcopy命令也有很多编辑修改的衍生命令，能够让高级用户更多地控制复制进程。为了支持robocopy命令，xcopy现已被弃用，但是它依旧有效，可以复制文件。ROBOCOPYrobocopy C:\tools D:\backup\tools /e在Windows命令提示符中，它是最新的可用的复制命令。它需要Windows Vista或更新的系统作为支撑。Windows XP用户需要安装Windows 2003 服务器资源套件工具包才能使用它。robocopy支持更多重要的文件复制任务，可以创建两个文件结构的完全的镜像副本而不复制任何不需要的文件，与此同时还能保留文件权限和其他属性等。同时它还允许您保留所有相关文件信息，更适用于复制大量数据。复制特定文件指定文件类型Robocopy d:\写作 e:\写作 *.txt *.doc *.xls *.ppt *.rar /s指定时间Robocopy d:\写作 e:\写作 /s *.txt *.doc *.xls *.ppt /maxage:30/maxage:指定日期以后的可接数字，也可以接日期数字小于1900时表示天数，或者YYYYMMDD/minage:指定日期之前的​命令说明复制选项类型定义/S复制子目录，但不复制空的子目录/E复制子目录，包括空的子目录/LEV:n仅复制源目录树的前 n 层/Z在可重新启动模式下复制文件/B在备份模式下复制文件/ZB使用可重新启动模式；如果拒绝访问，请使用备份模式/EFSRAW在 EFS RAW 模式下复制所有加密的文件/COPY:复制标记要复制的文件内容(默认为/COPY:DAT）（复制标记: D=数据，A=属性，T=时间戳）S=安全=NTFS ACL，O=所有者信息，U=审核信息）/DCOPY:T复制目录时间戳/SEC复制具有安全性的文件(等同于/COPY:DATS）/COPYALL复制所有文件信息(等同于/COPY:DATSOU）/NOCOPY不复制任何文件信息(与/PURGE 一起使用生效）/SECFIX修复所有文件的文件安全性，即使是跳过的文件/TIMFIX修复所有文件的文件时间，即使是跳过的文件/PURGE删除源中不再存在的目标文件/目录/MIR镜像目录树(等同于/E 和/PURGE）/MOV移动文件(复制后从源中删除）/MOVE移动文件和目录(复制后从源中删除）/A+:[RASHCNET]将给定的属性添加到复制文件/A-:[RASHCNET]从复制文件中删除给定的属性/CREATE仅创建目录树和长度为零的文件/FAT仅使用 8.3 FAT 文件名创建目标文件/256关闭超长路径(> 256 字符）支持/MON:n监视源；发现多于 n 个更改时再次运行/MOT:m监视源；如果更改，在 m 分钟时间内再次运行/RH:hhmm-hhmm运行小时数 - 可以启动新副本的时间/PF以每个文件(而不是每个步骤）为基础检查运行小时数/IPG:n程序包间的间距(ms），以释放低速线路上的带宽文件选择选项:类型定义/A仅复制具有存档属性集的文件/M仅复制具有存档属性的文件并重置存档属性/IA:[RASHCNETO]仅包含具有任意给定属性集的文件/XA:[RASHCNETO]排除具有任意给定属性集的文件/XF 文件[文件]...排除与给定名称/路径/通配符匹配的文件/XD 目录[目录]...排除与给定名称/路径匹配的目录/XC排除已更改的文件/X排除较新的文件/XO排除较旧的文件/XX排除多余的文件和目录/XL排除孤立的文件和目录/IS包含相同文件/IT包含已调整的文件/MAX:n最大的文件大小 - 排除大于 n 字节的文件/MIN:n最小的文件大小 - 排除小于 n 字节的文件/MAXAGE:n最长的文件存在时间 - 排除早于 n 天/日期的文件/MINAGE:n最短的文件存在时间 - 排除晚于 n 天/日期的文件/MAXLAD:n最大的最后访问日期 - 排除自 n 以来未使用的文件/MINLAD:n最小的最后访问日期 - 排除自 n 以来使用的文件 (If n < 1900 then n = n days, else n = YYYYMMDD date)/XJ排除接合点。(默认情况下通常包括)/FFT假设 FAT 文件时间(2 秒粒度)/DST弥补 1 小时的 DST 时间差/XJD排除目…