.bat批处理命令处理文件

1 篇文章 0 订阅
本文介绍了一个批处理脚本(FileOperation.bat),它用于在Windows环境下,通过bat命令获取并删除当前.bat文件所在目录及其上级目录的文件和文件夹,包括文件和特定文件夹的询问式删除操作。
摘要由CSDN通过智能技术生成

批处理命令处理文件找到上级目录,并删除文件与文件夹。

这里新建一个.txt文件,并将文件名改名为FileOperation.bat。

文件内容如下:

::例如:"c:\F1\F2\F3",我在c:\F1\F2\F3\b.bat创建一个bat文件想去删除上级目录F2中的文件已经文件夹。

:: ---注释不能连续2行,中间必须空1行???这里没有空行好像就有问题。

::例如:"c:\F1\F2\F3",我在c:\F1\F2\F3\b.bat创建一个bat文件想去复制c:\F1\F2\F3\a.txt文件到d盘,就需要用到此代码。复制文件自己查方法。

::@echo off 表示不输出执行命令输出,可以删除@符号后运行.bat文件后,看其中的区别
@echo off
::echo ------------测试获取当前.bat文件路径的上级路径.并从上级路径删除文件与文件夹------------

echo ----------------------------------------------

::设置CurrentPath=当前.bat文件所在目录
set CurrentPath=%~dp0
::设置P1Path=当前.bat文件所在目录的上1级目录
set P1Path=
::设置P2Path=当前.bat文件所在目录的上2级目录
set P2Path=
::设置P3Path=当前.bat文件所在目录的上3级目录
set P3Path=

::开始计算当前目录上级路径.开始代码。
:begin
for /f "tokens=1,* delims=\" %%i in ("%CurrentPath%") do (set content=%%i&&set CurrentPath=%%j)
::结束条件
if "%P1Path%%content%\" == "%~dp0" goto end
set P3Path=%P2Path%
set P2Path=%P1Path%
set P1Path=%P1Path%%content%\
goto begin
:end
::结束计算当前目录上级路径.结束代码 

::输出当前.bat文件所在目录
echo CurrentPath=%~dp0
::输出当前.bat文件所在目录的上1级目录
echo P1Path=%P1Path%
::输出当前.bat文件所在目录的上2级目录
echo P2Path=%P2Path%
::输出当前.bat文件所在目录的上3级目录
echo P3Path=%P3Path%

::----------------------删除文件-------------------------------------------

::----删除F4目录下的文件:与.bat文件目录相同 ---注释不能连续2行,中间必须空1行

::设置 delFileName4=delFile4.txt 的文件的路径 ---注释不能连续2行,中间必须空1行
set delFileName4=%~dp0F4\delFile4.txt
::输出是否删除文件?delFileName4 的值
echo ----------- Delete File ? %delFileName4% -----------4
::执行删除文件操作:删除前询问
del /p %delFileName4%

::----删除F3目录下的文件:与.bat文件目录相同 ---注释不能连续2行,中间必须空1行

::设置 delFileName3=delFile3.txt 的文件的路径 ---注释不能连续2行,中间必须空1行
set delFileName3=%~dp0delFile3.txt
::输出是否删除文件?delFileName3 的值
echo ----------- Delete File ? %delFileName3% -----------3
::执行删除文件操作:删除前询问
del /p %delFileName3%

::----删除F2目录下的文件:.bat文件目录上1级目录 ---注释不能连续2行,中间必须空1行

::设置 delFileName2=delFile2.txt 的文件的路径
set delFileName2=%P2Path%F2\delFile2.txt
::输出是否删除文件?delFileName2 的值
echo ----------- Delete File ? %delFileName2% -----------2
::执行删除文件操作:删除前询问
del /p %delFileName2%

::----删除F1目录下的文件:.bat文件目录上2级目录 ---注释不能连续2行,中间必须空1行

::设置 delFileNam1=delFile1.txt 的文件的路径 ---注释不能连续2行,中间必须空1行
set delFileNam1=%P2Path%delFile1.txt
::输出是否删除文件?delFileNam1 的值
echo ----------- Delete File ? %delFileNam1% -----------1
::执行删除文件操作:删除前询问
del /p %delFileNam1%


::设置 rdDirName=rdDir 的文件夹路径
set rdDirName=%P2Path%F2\F3\rdDir
::输出是否删除文件夹?rdDirName的值
echo ----------- Delete File Folder ? %rdDirName% -----------
::执行删除文件夹操作:删除前询问并删除文件加下所有子文件夹与文件
rd /s %rdDirName%

::pause表示暂停
pause

双击运行文件效果图如下

这里展示下我测试的目录结构

整个测试放在了C:\Test文件夹下。

使用"tree /f"可以查看文件目录树状结构,也可以使用"tree /f >tttt.txt"将树状结构保存在tttt.txt文件中。

从下图看可以看到。Test,F1,F2,F3,F4,rdDir是文件夹。FileOperation.bat是批处理脚本。

 参考资料:

[BAT] 如何获取bat的上一级目录、上两级目录..._bat 上层目录_Risun_Lee的博客-CSDN博客@echo offset currPath=%~dp0set parentPath=set parentparentPath=:beginfor /f "tokens=1,* delims=\" %%i in ("%currPath%") do (set front=%%i&&set currPath=%%j)if "%parentPath%%front%\" == "%~dp0" goto endset parentparentPath=%parentPath%se_bat 上层目录https://blog.csdn.net/risun_lee/article/details/116039567

批处理删除指定文件或文件夹_菇毒的博客-CSDN博客批处理删除指定文件或文件夹1. DEL1.1 DEL 的命令参数1.2 用 DEL 命令删除文件1.3 在 cmd 中查看 DEL 的帮助2. RD2.1 RD 的命令参数2.2 用 RD 删除文件夹2.3 在 cmd 中查看 RD 的帮助1. DEL1.1 DEL 的命令参数使用 del 命令能指定文件,Del (erase)[Drive:][Path]FileName指删除指定文件。指定要删除的文件或文件集的位置和名称。语法格式如下:del [Drive:][Path]FileName[ _批处理删除指定文件https://blog.csdn.net/weixin_43960383/article/details/124367384

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值