标题: [文件操作] 批处理如何爬取最后两级文件夹名字? [打印本页]
作者: gsjdjfjf 时间: 2021-7-28 08:18 标题: 批处理如何爬取最后两级文件夹名字?
有一堆文件夹,怎么样爬取最后两级文件夹名字,比如
/1/2/3/4/5这样的
爬取/4/5
就行了
第五季文件夹下面有文件,不需要爬,爬了也行,我自己可以批量删除
作者: qixiaobin0715 时间: 2021-7-28 08:49
最好详细说明自己想实现的目的是什么。
作者: zztxbat 时间: 2021-7-28 09:00
回复 2# qixiaobin0715
想把最后两级文件名提取
有一批类似于
/xx/xx/xx/唐朝/李白/静夜思.txt
的文件,想把所有朝代+作者提取出来
作者: Batcher 时间: 2021-7-28 11:25
回复 1# gsjdjfjf - @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.txt') do (
- echo --- %%i
- for %%j in ("%%i\..") do (
- for %%k in ("%%i\..\..") do (
- echo %%~nxk/%%~nxj
- )
- )
- )
- pause
复制代码
作者: qixiaobin0715 时间: 2021-7-28 12:37
回复 4# Batcher
如果文件夹下有多个文件,岂不是会产生重复现象?
作者: qixiaobin0715 时间: 2021-7-28 13:09
- @echo off
- for /r /d %%a in (*) do (
- if exist "%%a\*.txt" (
- for %%b in ("%%a\..") do echo,%%~nb/%%~na
- )
- )
- pause
复制代码
作者: Batcher 时间: 2021-7-28 15:38
回复 5# qixiaobin0715
嗯嗯,不知道楼主的实际需求是怎样的。
作者: newswan 时间: 2021-7-28 19:23
任意数量,取最后第2 第3
第三方命令- echo a\b\c\d\e\f\g | sed -r -e "s|.*[\]([^\]+?)[\]([^\]+?)[\][^\]+?$|\1 \2|g"
复制代码
纯批处理- @echo off
- setlocal ENABLEDELAYEDEXPANSION
-
- for /f "delims=" %%a in ("a\b\c\d\e\f\g") do (
- set a=%%a
- set a=!a:\= !
- call :C_1 v1 v2 !a!
- echo !v1!
- echo !v2!
- )
- goto :END
-
-
- :C_1
- if "%6" neq "" (
- shift /3
- goto :C_1
- )
- set %1=%3
- set %2=%4
- goto :eof
-
- :END
复制代码
作者: idwma 时间: 2021-7-28 20:45
本帖最后由 idwma 于 2021-7-28 20:47 编辑
站在巨人肩上正则真好用- 1>1/* :
- @echo off
- echo /xx/xx/xx/唐朝/李白/静夜思.txt|cscript //nologo //e:jscript "%~F0"
- pause
- goto :EOF
- */
- var stdin = WScript.StdIn;
- var reg=/^.*(\/.*\/.*)\.txt$/;
- while (!stdin.AtEndOfStream)
- {
- var str = stdin.ReadLine();
- if(reg.test(str)){WScript.Echo(str.replace(reg, '$1'));}
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |