BAT批处理解程序压当前的文件到指定的文件夹并删除原解压压缩包
时间: 2024-05-07 16:22:38 浏览: 191
假设你要将当前目录下的文件压缩到指定的文件夹中,可以使用以下批处理脚本:
```
@echo off
setlocal
set DEST_FOLDER=C:\path\to\destination\folder
set ZIP_FILE=%~n0.zip
rem 压缩当前目录下的所有文件到 ZIP_FILE 中
powershell Compress-Archive -Path * -DestinationPath %ZIP_FILE%
rem 将 ZIP_FILE 移动到目标文件夹中
move %ZIP_FILE% "%DEST_FOLDER%\"
rem 删除原始文件夹
rd /s /q .
echo Done!
pause
```
上面的脚本使用 PowerShell 的 `Compress-Archive` 命令将当前目录下的所有文件压缩到一个名为 `%~n0.zip` 的文件中(`%~n0` 是批处理文件的文件名)。然后将这个压缩文件移动到指定的目标文件夹 `%DEST_FOLDER%` 中,并将原始文件夹删除。最后输出 `Done!` 并暂停脚本的执行。
相关问题
BAT批处理解压当前后缀名rar的压缩包到另一个盘符下的文件夹
假设需要解压的RAR文件名为example.rar,解压到D盘下的文件夹名为example文件夹,可以使用以下批处理命令:
```
@echo off
setlocal EnableDelayedExpansion
set sourceFile=%~dp0\*.rar
set destFolder=D:\example
if not exist "%destFolder%" md "%destFolder%"
for /r "%sourceFile%" %%a in (%sourceFile%) do (
echo Extracting "%%a" to "%destFolder%"
"C:\Program Files\WinRAR\WinRAR.exe" x "%%a" "%destFolder%" -y
)
echo Done.
pause
```
解释:
- `set sourceFile=%~dp0\*.rar`:设置源文件路径为当前批处理文件所在目录下的所有RAR文件。
- `set destFolder=D:\example`:设置目标文件夹为D盘下的example文件夹。
- `if not exist "%destFolder%" md "%destFolder%"`:如果目标文件夹不存在,则创建它。
- `for /r "%sourceFile%" %%a in (%sourceFile%) do (...)`:循环遍历所有RAR文件,对于每个文件执行括号中的命令。
- `echo Extracting "%%a" to "%destFolder%"`:输出当前正在解压的文件名和目标文件夹。
- `"C:\Program Files\WinRAR\WinRAR.exe" x "%%a" "%destFolder%" -y`:使用WinRAR命令行工具解压RAR文件到目标文件夹,-y参数表示自动覆盖已存在的文件。
- `echo Done.`:输出完成提示。
- `pause`:等待用户按下任意键结束批处理。
阅读全文