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

[文件操作] 批处理如何获取一个文件名的字符长度是多少位?

本帖最后由 pcl_test 于 2016-9-19 21:23 编辑

问下,批处理如何获取一个文件名的长度是多少位?比如一个324df1fsf1.exe怎么判断出这个文件名长度是10位

本帖最后由 bailong360 于 2015-4-3 23:29 编辑

http://www.bathome.net/thread-11799-1-1.html
http://www.bathome.net/thread-4057-1-1.html
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (324df1fsf1.exe) do (
  4.  set str=%%~nifedcba9876543210
  5.  set/a len=0x!str:~15,1!
  6. )
  7. echo 长度%len%
  8. pause
复制代码

TOP

  1. @echo off
  2. call :strlen "324df1fsf1.exe"
  3. pause
  4. :strlen
  5. set "$=%~n1#"
  6. setlocal enabledelayedexpansion
  7. for %%a in (256 128 64 32 16)do if !$:~%%a!. NEQ . set/aN+=%%a&set $=!$:~%%a!
  8. set $=!$!fedcba9876543210&set/aN+=0x!$:~16,1!
  9. echo %N%
复制代码

TOP

本帖最后由 pcl_test 于 2016-9-19 21:28 编辑
  1. @echo off
  2. set "str=324df1fsf1.exe"
  3. for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(len(""%str%"")-4)"^)(close^)') do echo;%%a
  4. pause
复制代码

TOP

返回列表