批处理命令不能在for里面修改%%~ni的值么?

for/f"delims="%%iin('dir/b*.*')do(setstr=%%~nisetstr1=%str:~8,6%)为什么str1的值取不到?难道不能在fo... for /f "delims=" %%i in ('dir /b *.*') do (
set str=%%~ni
set str1=%str:~8,6%
)
为什么str1的值取不到?难道不能在for里面修改值吗?
展开
 我来答
鸢梨的小布丁
推荐于2016-11-06 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.3万
采纳率:21%
帮助的人:2157万
展开全部
for命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。
批处理文件中使用FOR命令时,指定变数请使用%%variable
FOR变数参照的替换已被增强。您现在可以使用下列选项语法:~I -删除任何引号("),扩充%I
%~fI -将%I扩充到一个完全合格的路径名
%~dI -仅将%I扩充到一个驱动器
%~pI -仅将%I扩充到一个路径
%~nI -仅将%I扩充到一个文件名
%~xI -仅将%I扩充到一个文件延伸名
%~sI -扩充的路径只含有短名
%~aI -将%I扩充到文件的文件内容
%~tI -将%I扩充到文件的日期/时间
%~zI -将%I扩充到文件的大小
%~$PATH:I -查找列在路径环境变数的目录,并将%I扩充
到找到的第一个完全合格的名称。如果环境变数
未被定义,或者没有找到文件,此组合键会扩充空字元串可以组合修饰符来得到多重结果:
%~dpI -仅将%I扩充到一个驱动器号和路径
%~nxI -仅将%I扩充到一个文件名和延伸名
%~fsI -仅将%I扩充到一个带有短名的完整路径名
%~dp$PATH:i -查找列在路径环境变数的目录,并将%I扩充
到找到的第一个驱动器号和路径。
%~ftzaI -将%I扩充到类似输出线路的DIR
在以上例子中,%I和PATH可用其他有效数值代替。 %~语法
用一个有效的FOR变数名停止。选取类似%I的大写变数名
比较易读,而且避免与不分大小写的组合键混淆。
CHENGWENGJI
2012-08-04 · TA获得超过412个赞
知道小有建树答主
回答量:667
采纳率:66%
帮助的人:291万
展开全部
有两种方法,楼上的都已经说完了,没有错误,我了给你介绍延迟变量
语句:setlocal enabledelayedexpansion

阐明:[就不讲那些大道理了]其实举例是最好的说明

@echo off & setlocal enabledelayedexpansion
set aa=0
set bb=bcd
::for 语句是一个语句
for /i %%i in (0,1,50) do (set /a aa+=1
set bb=bbbb
echo %aa% !aa!
echo %bb% !bb!)
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野人拆
2012-08-04 · TA获得超过1069个赞
知道小有建树答主
回答量:815
采纳率:57%
帮助的人:556万
展开全部
@echo off&setlocal enabledelayedexpansion

用延迟变量,不然for循环里的赋值得在结束后才成功.

for /f "delims=" %%i in ('dir /b *.*') do (
set str=%%~ni
set str1=!str:~8,6!
)
追问
显示语法不正确啊,!这个应该是%啊为什么是!号呢?
追答
你最上面有加setlocal enabledelayedexpansion么?完整的是:
@echo off&setlocal enabledelayedexpansion

for /f "delims=" %%i in ('dir /b *.*') do (
set “str=%%~ni”
set “str1=!str:~8,6!”
)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-03-01
展开全部
for /f "delims=" %%i in ('dir /b *.*') do (
set str=%%~ni
call set str1=%%str:~8,6%%
)
更多追问追答
追问
语法都不对。
追答
经试验,语法不仅正确,而且结果也正确。
你的问题就是因为你不懂语法。你有试验我的代码吗?

下面的代码可以明显说明问题:
会显示当前文件夹中的“文件名 截取的字符”
@echo off
for /f "delims=" %%i in ('dir /b *.*') do (set str=%%~ni
call echo %%~ni%%str:~8,6%%)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式