标题: [文件操作] [已解决]批处理如何检测第二层子目录文件是否存在? [打印本页]
作者: liaoguinan 时间: 2023-8-10 17:17 标题: [已解决]批处理如何检测第二层子目录文件是否存在?
本帖最后由 liaoguinan 于 2023-8-10 22:01 编辑
如何检测子目录下的所有文件夹内是否有PDF文件,如果有则记录到桌面记事本
一共有三层目录只检测第二层子目录,第三层不检测,第三层文件夹下也有PDF
作者: Batcher 时间: 2023-8-10 17:44
回复 1# liaoguinan
请截图说明脚本放在哪个目录下执行,需要检测的是哪一级目录。
如果需要上传文件,可以用阿里云盘或百度网盘。
如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: liaoguinan 时间: 2023-8-10 19:45
回复 2# Batcher
已上传
作者: Batcher 时间: 2023-8-10 21:23
回复 1# liaoguinan
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- set "OutFile=%userprofile%\Desktop\结果.txt"
- >"%OutFile%" type nul
- for /f "delims=" %%a in ('dir /b /ad') do (
- echo 一级文件夹:%%a
- pushd "%%a"
- for /f "delims=" %%b in ('dir /b /ad') do (
- if exist "%%b\*.pdf" (
- >>"%OutFile%" echo "%%a\%%b:有pdf文件"
- )
- )
- popd
- )
复制代码
作者: Nsqs 时间: 2023-8-11 04:20
本帖最后由 Nsqs 于 2023-8-11 04:25 编辑
- function dl($path){[regex]::Matches(($path),'\\').count}
- $currentlayer=(dl (gl))+2 #这里是层级,2代表第二层
- (dir -Recurse|%{
- $sourcelayer=(dl $_.DirectoryName)
- if($currentlayer -eq $sourcelayer){$_.FullName}
- })|sc $env:USERPROFILE\Desktop\记录.txt
复制代码
一层for即可
作者: qixiaobin0715 时间: 2023-8-11 16:37
定位第n层子目录实际上也可用筛选法,比如要找出第3层子目录:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /s /b /ad') do (
- for %%j in ("%%i\..\..\..") do (
- if "%cd%"=="%%~fj" echo,%%i
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |