首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >统计字符在字符串(批处理文件)中出现的次数

统计字符在字符串(批处理文件)中出现的次数
EN

Stack Overflow用户
提问于 2015-06-30 01:09:38
回答 3查看 1.6K关注 0票数 0

我需要在windows中创建一个批处理文件,以解析文件夹中所有可用的文件名,并将符合某些条件的文件移动到文件夹中。我已经使用FOR命令创建了循环周期,并将文件名设置为一个变量。现在我需要检查文件名的变量中有多少个"-“连字符;如果这个字符出现的次数超过10个,那么文件就不应该被移动。此外,我还需要检查文件名中是否有空格:同样,在这种情况下,文件不能移动。请注意:我可以用哪种方式创建脚本来检查变量中假设的出现次数和空格字符的存在?

非常感谢

EN

Stack Overflow用户

发布于 2015-06-30 03:34:51

如果我没理解错的话,你不会真的想知道一个名字有多少个假设,而只是想知道这个名称是否有超过10个假设。这可以通过for /F命令的"tokens=12 delims=-"选项轻松实现:

EDIT:根据注释中声明的新请求修改的代码。新的代码检查名称是否恰好包含10个连字符,并且不包含空格。

代码语言:javascript
运行
复制
@echo off
setlocal

for %%a in (one-two-three-four-five-six-seven-eight-nine-end.txt
            one-two-three-four-five-six-seven-eight-nine-ten-end.txt
            one-two-three-four-five-six--eight-nine-ten-end.txt
            one-two-three-four-five---eight-nine-ten-end.txt
            one-two-three-four-five----nine-ten-end.txt
            one-two-three-four-five-----ten-end.txt
            one----------end.txt
            ----------.txt
            one-two-three-four-five-six-seven-eight-nine-ten-eleven-end.txt
            "one-two-three-four-five-SIX SEVEN--eight-nine-ten-end.txt") do (
   set "fileName=%%~a"
   call :checkName
)
goto :EOF


:checkName
echo Checking "%fileName%"
set "result=Don't have 10 hypens"
for /F "tokens=11,12 delims=-" %%a in ("%filename:--=X-X-X%") do (
   if "%%a" neq "" if "%%b" equ "" set "result=Name correct"
)
for /F "tokens=2" %%a in ("%fileName%") do if "%%a" neq "" set "result=Include space"
echo %result%
exit /B
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31121583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档