大家好,又见面了,我是你们的老朋友全栈君。
今天我们来探讨一下如何在批处理中解决for循环体内的字符串截取问题。让我们看看具体的背景和解决方案:
背景:我们需要读取批处理文件同目录下a文件夹中的所有文件名,并在for循环体中截取每个文件名的前两位字符串。


以下是解决这个问题所需的批处理代码:
@echo off &setlocal enabledelayedexpansion
set fa=C:\Users\GilbertXiao\Desktop\a\a
for /f "delims=" %%a in ('dir /b/on %fa%\*.*') do (
set fullname=%%a
echo !fullname!
for /f "tokens=1,2 delims=." %%b in ("!fullname!") do (
set name=%%b
echo !name!
rem substr the name
set shortname=!name:~0,2!
echo !shortname!
rem write the shortname into b.txt
echo !shortname!>b.txt
)
)
pause解决方案的关键在于开启批处理变量延迟扩展,即使用
setlocal enabledelayedexpansion,并在for循环体中使用
!代替
%来引用变量。
运行结果如下:


版权声明:本文内容由互联网用户自发贡献,文中观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://www.php.cn/link/ea9be6ea49c5c752abb11953955c90e4 原文链接:https://www.php.cn/link/c8377ad2a50fb65de28b11cfc628d75c










