[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 5# Demon


    同感。。。。
   敢想敢写是好的,但是万事还有着规律的,不能乱写啊,楼主。。。
***共同提高***

TOP

本年度最牛逼批处理

TOP

for /f "eol=0 delims=" …

TOP

本帖最后由 极品小猫 于 2012-12-23 00:01 编辑

如果需要进行数字运算,需要利用变量来处理,使用 set /a 来进行计算

下面提供一个更加简便直接的办法
  1. @echo off
  2. for /f %%i in ('dir /a-d /s /b *.jpg^|findstr /i "\<[^0]*.jpg$"') do (
  3. echo %%i
  4. set /a num+=1
  5. )
  6. echo 非0开头的JPG文件数量:%num%
  7. pause
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set a=*.jpg
  3. set b=0%a%*
  4. for %%i in (a b) do (
  5.     for /f %%j in ('dir /a-d /b "!%%i!" 2^>nul^|find /v /c ""') do set N_%%i=%%j
  6. )
  7. set /a N=N_a-N_b
  8. echo %N%
  9. pause
复制代码

TOP

本帖最后由 yeahey_726 于 2012-12-22 14:35 编辑

@echo off
((dir /a-d /b *.jpg |find /v /c "")- (dir /a-d /b 0*.jpg |find /v /c ""))>1.txt
pause

我想把文件夹中非以0开头的jpg文件数算出来,怎么实现不了呢?两个值求出来是正确的,就是相减以后就没结果了?!请多多指点,谢谢

TOP

批处理中减法怎么实现?

本帖最后由 yeahey_726 于 2012-12-22 14:37 编辑

@echo off
((dir /a-d /b *.jpg |find /v /c "")- (dir /a-d /b 0*.jpg |find /v /c ""))>1.txt
pause

我想把文件夹中非以0开头的jpg文件数算出来,怎么实现不了呢?两个值求出来是正确的,就是相减以后就没结果了?!
请多多指点,谢谢,为了大家注意,再开一个帖子,版主不会找茬吧,

TOP

可能是我没讲清楚吧,我的文件夹内有很多子目录,每个子目录里面有很多不同类型的文件,文件名也各种各样,含不少特殊符号,我现在需要:在文件夹内双击,可以输出1.txt,内容为:
子文件夹1:总文件个数、jpg文件个数、非0开头的jpg文件个数
子文件夹2:总文件个数、jpg文件个数、非0开头的jpg文件个数
我刚学批处理,老没搞好,再次请求各位大牛!

TOP

还有部分文件名开头为特殊字符,如~等

TOP

谢谢ivor 兄,这么晚了还在网上,是在国外念书?输出结果是很细致,每个非0开头的文件名都统计上去了。不过,我要的很简单,只要文件个数,我才开始学习批处理,又要的急,所以再次请教,谢谢,我直接echo count不行

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. ::初始化count
  3. set count = 0
  4. ::遍历jpg文件
  5. for /r "." %%a in (*.jpg) do (
  6. set fn=%%~na
  7. if "!fn:~0,1!" neq "0" (
  8. set /a count += 1
  9. echo %%~a>>1.txt
  10. echo %%~a
  11. )
  12. )
  13. echo 非0开头的文件数量为%count%个>>1.txt
  14. echo 非0开头的文件数量为%count%个
  15. echo.
  16. echo 结果已经保存在了当前文件夹1.txt中了
  17. echo.
  18. pause
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

返回列表