bat怎么获取文件夹内文件名称,以及子文件夹内文件名称? bat批量修改文件夹名称

561℃ PAT

bat怎么获取文件夹内文件名称,以及子文件夹内文件名称?bat批量修改文件夹名称

BAT如何获取文件名及所属的文件夹名

展开全部

@echo off&setlocal enabledelayedexpansion

for /f "delims=" %%i in ('dir /s/b *.txt') do (

    set Dir=%%~dpi

    call:GetDirName "!Dir:~,-1!"

    set a=%%~ni

)

pause

exit

:GetDirName

set b=%~nx1

【高手来】批处理获取文件夹名称及数量,当前文件数量,子文件夹名称,子文件夹内的文件数量

1

2

@echooff

for/r/d%%i in(*) dofor/f%%j in('dir/b/a-d"%%i") doecho%%i   %%j

批处理bat 获得指定目录内的文件夹名称

1、在电脑中新建一个文本文档,双击打开该文档。

2、在页面中输入:@Echo off   dir /b>test.txt,在off位置开始切换到第二行。

3、选择文本文档的“文件”选项点击“另存为”,将新建文档改名为“复制文件名称.bat”。

4、即可生成批处理文件,并将其拖入需要提取文件名的文件夹中。

5、双击打开批处理程序,在文件夹中就会出现一个“test”的TXT文档。

6、打开后即可看到页面中已经将文件夹的名称提取出来了。

求一个批处理程序,获取当前目录所有文件夹及子文件夹下内的文件数量,并将数量添加到文件夹名字后面

@echo off

set @=q&set/an=0x53b7e0b4

title Any question +%@%%@% %n%

rem 使用前先确保里面的文件夹和文件都已关闭

set "父文件夹=D:\test\A"

if not exist "%父文件夹%" (echo;path error or not exist&pause&exit)

powershell ^

    $c=0;^

    dir -liter '%父文件夹%' -r^|?{$_ -is [System.IO.DirectoryInfo]}^|sort {$_.FullName.Length} -des^|%%{^

        $n=0;$m=0;^

        $file=@(dir -liter $_.FullName^|?{$_ -is [System.IO.FileInfo]});^

        $n=$file.Length;^

        dir -liter $_.FullName^|?{$_ -is [System.IO.DirectoryInfo]}^|%%{^

            $m+=[int]($_.Name -replace '^^.+-(\d+)$','$1');^

        };^

        $s=$n+$m;$c+=$s;^

        $NewName=($_.Name -replace '-\d+$')+'-'+$s.toString();^

        write-host ($_.FullName+' --^> '+$NewName);^

        if(-not (test-path -liter ($_.Parent.FullName+'\'+$NewName))){^

            ren $_.FullName $NewName -Force;^

        };^

    };^

    $rootpath=gi ('%父文件夹%'.trimend('\'));^

    $f=@(dir -liter $rootpath.FullName^|?{$_ -is [System.IO.FileInfo]});^

    $c+=$f.Length;^

    $NewName=($rootpath.Name -replace '-\d+$','')+'-'+$c.toString();^

    if(-not (test-path -liter ($rootpath.Parent.FullName+'\'+$NewName))){^

        ren $rootpath.FullName $NewName -Force;^

    }

echo;Any question +%@%%@% %n%

pause