365 体育在线网址_365bet体育线上平台_谁有365体育在线网址新手入门导读[视频教程]365 体育在线网址_365bet体育线上平台_谁有365体育在线网址基础视频教程[视频教程]VBS基础视频教程
[365 体育在线网址_365bet体育线上平台_谁有365体育在线网址文件精品]365 体育在线网址_365bet体育线上平台_谁有365体育在线网址版照片整理器[365 体育在线网址_365bet体育线上平台_谁有365体育在线网址文件精品]纯365 体育在线网址_365bet体育线上平台_谁有365体育在线网址备份&还原驱动在线第三方下载
返回列表 发帖

[文件操作] 365 体育在线网址_365bet体育线上平台_谁有365体育在线网址求助 历遍文件夹下的图片文件,用上几级文件夹的名称来重命名

大佬们,是这样的:
总文件夹下面有很多子目录,子文件
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件夹四层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件夹四层+文件夹五层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件1,2,3,4,5....
总文件夹+文件夹一层+文件夹二层+文件夹三层+文件夹四层+文件夹五层+文件夹六层+文件夹七层+文件夹八层+文件1,2,3,4,5....
......
我想将bat文件放在总文件夹下,双击就可以。
文件夹的层数是不定的,历遍就行。
我想要的命名方式是:文件夹一层+我输入的文字+文件的上一层目录的名称+3位数序列号.图片格式本身
具体就是:
文件夹一层+我输入的文字+文件夹三层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹二层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹一层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹四层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹五层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹三层+文件001,002,003,004,005....图片格式本身
文件夹一层+我输入的文字+文件夹八层+文件001,002,003,004,005....图片格式本身

就是中间不管有几层文件夹,我只要第一层和倒数第一层的文件夹名字。中间加入我自己想输入的文字,加上序列号

事情就是这样,跪求大佬们给条明路,拜谢。:P
选择需要承载!

@echo off
mode con lines=3000
cd /d "%~dp0"
set /p input=输入:
for /f "delims=" %%a in ('dir /ad/b') do (
    set n=100001
    set "first=%%a"
    for /f "delims=" %%b in ('dir /a-d/b ".\%%a\" 2^>nul') do (
        set "file=.\%%a\%%b"
        setlocal enabledelayedexpansion
        echo;"!file!" --^> "!first!-%input%-!first!-!n:~-4!%%~xb"
        ren "!file!" "!first!-%input%-!first!-!n:~-4!%%~xb"
        endlocal
        set /a n+=1
    )
    for /f "delims=" %%b in ('dir /ad/b/s ".\%%a\" 2^>nul') do (
        set m=100001
        set "last=%%~nxb"
        for /f "delims=" %%c in ('dir /a-d/b "%%b\" 2^>nul') do (
            set "file=%%b\%%c"
            setlocal enabledelayedexpansion
            echo;"!file!" --^> "!first!-%input%-!last!-!m:~-4!%%~xc"
            ren "!file!" "!first!-%input%-!last!-!m:~-4!%%~xc"
            endlocal
            set /a m+=1
        )
    )
)
pause
exit
选择需要承载!

TOP

本帖最后由 ivor 于 2019-11-2 22:06 编辑
  1. <# :
  2. @Powershell "& {[ScriptBlock]::Create((gc '%~f0' -raw)).Invoke()}" & pause & goto :eof
  3. #>
  4. $cust = "自定义"
  5. dir -Recurse -File| %{
  6. $fileArray = ($_.FullName.TrimStart("$pwd")).Split('\')
  7. if($fileArray.Count -ge 2){
  8. $par=[System.IO.Path]::GetDirectoryName($_.FullName)
  9. if($par -eq $parent){
  10. $num += 1
  11. }
  12. else{
  13. $num = 1
  14. }
  15. $newName=($fileArray[0],$cust,$fileArray[-2],("{0:d4}" -f $num) -join '+')+$_.Extension
  16. ren $_.FullName -NewName ($par+"\\"+$newName) -verbose
  17. }
  18. $parent=[System.IO.Path]::GetDirectoryName($_.FullName)
  19. }
复制代码
qq:250193966

TOP

返回列表