标题: [文件操作] 批处理如何获取一个文件名的字符长度是多少位? [打印本页]
作者: hijackle 时间: 2015-4-3 23:25 标题: 批处理如何获取一个文件名的字符长度是多少位?
本帖最后由 pcl_test 于 2016-9-19 21:23 编辑
问下,批处理如何获取一个文件名的长度是多少位?比如一个324df1fsf1.exe怎么判断出这个文件名长度是10位
作者: bailong360 时间: 2015-4-3 23:28
本帖最后由 bailong360 于 2015-4-3 23:29 编辑
http://www.bathome.net/thread-11799-1-1.html
http://www.bathome.net/thread-4057-1-1.html- @echo off
- setlocal enabledelayedexpansion
- for %%i in (324df1fsf1.exe) do (
- set str=%%~nifedcba9876543210
- set/a len=0x!str:~15,1!
- )
- echo 长度%len%
- pause
复制代码
作者: cobat 时间: 2015-4-4 10:13
- @echo off
- call :strlen "324df1fsf1.exe"
- pause
-
- :strlen
- set "$=%~n1#"
- setlocal enabledelayedexpansion
- for %%a in (256 128 64 32 16)do if !$:~%%a!. NEQ . set/aN+=%%a&set $=!$:~%%a!
- set $=!$!fedcba9876543210&set/aN+=0x!$:~16,1!
- echo %N%
复制代码
作者: pcl_test 时间: 2015-4-4 10:42
本帖最后由 pcl_test 于 2016-9-19 21:28 编辑
- @echo off
- set "str=324df1fsf1.exe"
- for /f %%a in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(len(""%str%"")-4)"^)(close^)') do echo;%%a
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |