标题: [文本处理] 批处理怎样扫描计数当前目录内的子文件夹和文件数量? [打印本页]
作者: chen007 时间: 2023-5-25 16:36 标题: 批处理怎样扫描计数当前目录内的子文件夹和文件数量?
研究好久了不是计数数量错误,就是无法运行,有没有大佬带带我
- @echo off
- setlocal enabledelayedexpansion
- set/p d=请输入精简Roms的盘符并回车【例如C:\Roms,只需要输入C】:
- set /a n=0,a=0,b=0,c=0
- for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A:D') do set /a n+=1
- for /r "%d%:\Roms\" %%a in (*.*) do set /a c+=1
- echo 共【%n%】个文件夹和【%c%】个文件
- pause
- for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A:D') do (
- for /f "delims=" %%a in ('dir /b "%d%:\Roms\%%i\"') do (
- xcopy "Roms\%%i\media\%%~na" "%d%:\Roms\%%i\media\%%~na\" /E /Y >nul 2>nul
- if errorlevel 1 (set a+=1) else set /a b+=1
- echo 【%%i】%%~na【预览素材已复制】
- ))
- echo 已复制成功 !b! 个,失败!a!个!
- echo 按任意键退出
- pause>nul
- Exit
复制代码
作者: chen007 时间: 2023-5-25 16:38
作者: 77七 时间: 2023-5-25 21:04
回复 2# chen007
dir /s 显示指定目录和所有子目录中的文件。
作者: Batcher 时间: 2023-5-25 22:46
回复 1# chen007
把你的第5行、第6行改成这样试试:- for /f %%i in ('dir /b /ad "%d%:\Roms\"') do set /a n+=1
- for /f %%i in ('dir /b /a-d "%d%:\Roms\"') do set /a c+=1
复制代码
作者: chen007 时间: 2023-5-26 14:20
回复 4# Batcher
谢谢下午回家试一下
作者: chen007 时间: 2023-5-26 16:16
回复 4# Batcher
@echo off
setlocal enabledelayedexpansion
set/p d=请输入精简Roms的盘符并回车【例如C:\Roms,只需要输入C】:
set /a n=0,a=0,b=0,c=0
for /f %%i in ('dir /b /ad "%d%:\Roms\"') do set /a n+=1
for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A') do (
for /f %%i in ('dir /b /ad "%d%:\Roms\%%i\"') do (
set /a c+=1
))
for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A:D') do (
for /f %%i in ('dir /b /a-d "%d%:\Roms\%%i\"') do (
set /a c+=1
))
echo 共【%n%】个文件夹和【%c%】个文件
pause
for /f "delims=" %%i in ('dir "%d%:\Roms\" /B /A:D') do (
for /f "delims=" %%a in ('dir /b "%d%:\Roms\%%i\"') do (
xcopy "Roms\%%i\media\%%~na" "%d%:\Roms\%%i\media\%%~na\" /E /Y >nul 2>nul
if errorlevel 1 (set a+=1) else set /a b+=1
echo 【%%i】%%~na【预览素材已复制】
))
echo 已复制成功 !b! 个,失败!a!个!
echo 按任意键退出
pause>nul
Exit
改成这样正常了.....
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |