批处理命令处理文件找到上级目录,并删除文件与文件夹
参考资料:
[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
这里新建一个.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是批处理脚本。