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

参考资料: