使用bat脚本对文件夹进行复制、压缩、解压操作

准备

新建**.txt文件,编写完成后重命名为**.bat。

1、复制文件夹

复制文件夹全部内容,包括隐藏文件及文件夹,如果存在进行覆盖。

代码如下:

@echo off
xcopy /y/s/e/h E:\abc E:\copy\abc\

把E盘的文件夹abc,整个拷贝到E盘copy文件夹内。

/y 复制文件审核设置(隐含 /O)。
/s 复制目录和子目录,除了空的。
/e 复制目录和子目录,包括空的。
/h 也复制隐藏和系统文件。

若使用命令行参数确定文件夹路径,可将脚本内路径用%1 %2代替

@echo off
xcopy /y/s/e/h %1 %2
在调用脚本文件后输入路径参数即可。

**.bat E:\abc E:\copy\abc\

2、压缩、解压文件夹

首先确定WinRAR.exe所在的目录,默认路径
“C:\Program Files\WinRAR\Rar.exe”

压缩文件夹代码如下:

@echo off
"C:\Program Files\WinRAR\Rar.exe" a -ep1 F:\abc.rar E:\copy\abc

把E盘copy文件夹内的文件夹abc,压缩到F盘内。

a 添加文件到压缩文件
-ep1 从名称里排除基目录

若没有-ep1这个参数,解压后的文件夹的路径会存在原文件的基目录。
在这里插入图片描述

解压文件夹代码如下:

@echo off
"C:\Program Files\WinRAR\Rar.exe" x -y F:\abc.rar F:\

把F盘的abc.rar,解压到F盘。

x 以完整路径提取文件
-y 对所有询问假定选择“是”

### 回答1: 我可以给你一个参考:@echo off :start for %%a in (*.zip) do ( "C:\Program Files\7-Zip\7z.exe" x -o"%%~na" "%%a" ) timeout /t 5 /nobreak goto start exit ### 回答2: 你可以写一个bat脚本来实现这个功能。首先,确保你已经安装了解压缩工具,如7-Zip。然后按照以下步骤编写脚本: 1. 打开记事本或其他文本编辑器。 2. 输入以下命令: ```bat @echo off :loop echo 正在检查是否有新的压缩包... for /R "路径\to\压缩包文件夹" %%I in (*.zip) do ( echo 解压缩 %%~nI.zip... "C:\Program Files\7-Zip\7z.exe" x "%%I" -o"路径\to\解压缩路径" del "%%I" ) timeout /t 60 > nul goto loop ``` 请注意将“路径\to\压缩包文件夹”替换为实际的压缩包所在文件夹的路径,将“路径\to\解压缩路径”替换为你希望解压缩到的文件夹路径。 4. 将文件保存为一个.bat文件,例如"auto_unzip.bat"。 5. 双击运行.bat文件,它将持续监视并自动解压缩目标文件夹中的压缩包。 这个脚本会循环检查指定文件夹中是否有新的压缩包出现。如果找到新的压缩包,它会使用7-Zip工具进行解压缩,并删除原始的压缩包文件。然后,它会等待60秒,然后再次检查是否有新的压缩包。这个过程将持续运行,直到你手动停止脚本。 希望这可以帮助到你! ### 回答3: 以下是一个使用vbs文件实现持续自动解压缩的例子: ```vbscript Set objFSO = CreateObject("Scripting.FileSystemObject") ' 设置要监控的文件夹路径 strFolder = "C:\目标文件夹路径" ' 创建监控对象 Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set colMonitoredEvents = objWMIService.ExecNotificationQuery("SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent= 'Win32_Directory.Name=""" & strFolder & """'") ' 循环检测文件夹中的新文件 Do Set objLatestEvent = colMonitoredEvents.NextEvent() ' 检测到新的文件 If objLatestEvent.TargetInstance.PartComponent Like "*Win32_Directory.Name=""" & strFolder & """%" Then ' 解压缩文件 strZipFile = Replace(objLatestEvent.TargetInstance.PartComponent, "|" & strFolder & "\", "") strDestFolder = objFSO.GetParentFolderName(strZipFile) Set objShellApp = CreateObject("Shell.Application") Set objSource = objShellApp.NameSpace(strZipFile).Items Set objDestination = objShellApp.NameSpace(strDestFolder) objDestination.CopyHere objSource End If Loop ``` 请注意,以上脚本需要替换`strFolder`变量的值为您需要监控的文件夹路径,脚本将会一直运行并在文件夹中检测到新文件时自动解压缩。此外,您需要将文件名后缀为.vbs保存,然后双击运行该文件即可开始自动解压缩。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值