loops - 为什么我在循环中的参数没有更新
问题描述
我尝试循环进入文件夹中的所有文件并拆分文件名以将它们用作批处理文件中的输入参数。
有人可以解释一下,为什么当我第二次进入我的循环 FOR (等等)时,我在循环中的变量 for 似乎不再更新/识别?
当我尝试显示 FILENAME 变量时,我有“echo FILENAME : !FILENAME!” 但我希望“回显文件名:myfile.txt
当我用 2 个参数调用 PRINT 批处理时出现同样的问题,我希望使用“D:\App\Test\print.bat”testfolder myfile.txt”执行我的批处理,但我看到了“D:\App\Test\print.bat” “!arg1!!arg2!”
我在想这应该是由于 ENABLEDELAYEXPANSION 在第一个循环结束时结束,但我的 endlocal ENABLEDELAYEXPANSION 已放在我的批处理结束时。
所以我真的不明白发生了什么......
非常感谢您的帮助!
setlocal ENABLEDELAYEDEXPANSION
for %%i in ("D:\App\Result"\*.*) do (
echo name : %%i
set str=%%i
for /f "tokens=1,2,3,4,5 delims=\" %%a in ("!str!") do (set DRIVELETTER=%%a&set DOMAIN=%%b&set NAME=%%c&set RESULT=%%d&set FILENAME=%%e)
echo FILENAME: !FILENAME!
set FOLDERNAME=!str:~0,5!
echo FOLDERNAME : !FOLDERNAME!
set arg1="D:\App\!FOLDERNAME!"
set arg2="D:\App\!FILENAME!"
D:\App\Test\print.bat !arg1! !arg2!
)
endlocal ENABLEDELAYEDEXPANSION
解决方案
推荐阅读
- php - 如何安全连接以获得安全 cookie
- mysql - 如何将 IndexedDB 与 MySQL 同步上传特定表?
- javascript - 将 HTML 表格导出为带有格式的 Excel
- api - 如何通过api获取所有jenkins用户
- messaging - 使用服务器发送事件构建通知引擎
- python - 修改 pandas 数据框中的 csv 数据
- javascript - 使用比例重新映射数字
- oracle - tcl :将 columnName 动态传递给 SQL 更新查询
- nosql - 在 AQL Graph 遍历中包含 Entry 节点
- android - 单击搜索按钮时获取 searchView 文本