sql - 文件上的 For 循环使无限循环
问题描述
我被困在我的批处理文件中的 for 循环问题上。下面的代码用于将 SQL 文件中的每个示例“INSERT”语句更改为 INSERT IGNORE。
for %%f in (%folder%\*.sql) do (
%~dp0\jager.exe -C "%%f" DROP \x23
%~dp0\jager.exe -C "%%f" INSERT "INSERT IGNORE"
%~dp0\jager.exe -C "%%f" "CREATE TABLE" "CREATE TABLE IF NOT EXISTS"
)
所以在这个循环中,jager.exe 是一个“查找和替换”程序,但是文件被修改了,循环再次使用它。所以我做了一个无限循环,但这不是我想要的。
我尝试了很多东西,但现在我不知道如何避免那个无限循环。
我可以从循环中获取迭代器吗?或者有什么办法让它不是无限循环?
谢谢你的时间。
解决方案
改成:
for /f "delims=" %%f in ('dir /b "%folder%\*.sql"') do (
该dir
命令在for
开始处理它的输出之前完全执行,因此在此过程中创建的文件将不会被处理。
推荐阅读
- java - 我的 AdMob 广告未在 android studio 中展示
- scala - sbt 测试因“分叉测试工具失败”而失败
- ios - SciCharts - ISCIAxisCore 可见的最小和最大索引
- python - JSON TypeError:字符串索引必须是整数
- python - 如何根据 Django 中的 UserGroup 显示不同的内容?
- python - 正则表达式匹配一个包含任何两位整数的特定字符串?
- eslint - eslint 不遵循 vue/* 的规则
- postgresql - 将数据更新到数组列 Postgres
- python - 在Python中启动各种动态进程
- java - 如何在二叉树中找到一个值