我想知道如何循环通过文本文件中的每一行使用Windows批处理文件和处理每行文本相继。
当前回答
从Windows命令行引用:
要解析一个文件,忽略注释行,输入:
for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
这个命令解析Myfile.txt中的每一行,忽略以分号开头的行,并将每行的第二和第三个标记传递给FOR主体(标记由逗号或空格分隔)。FOR语句体引用%i来获取第二个令牌,引用%j来获取第三个令牌,引用%k来获取所有剩余的令牌。
如果您提供的文件名包含空格,则在文本周围使用引号(例如,“文件名”)。要使用引号,必须使用usebackq。否则,引号将被解释为定义要解析的字面值字符串。
顺便说一下,你可以在大多数Windows系统上找到命令行帮助文件:
"C:\WINDOWS\Help\ntcmds.chm"
其他回答
修改示例在这里列出我们的Rails应用程序在Heroku -谢谢!
cmd /C "heroku list > heroku_apps.txt"
find /v "=" heroku_apps.txt | find /v ".TXT" | findstr /r /v /c:"^$" > heroku_apps_list.txt
for /F "tokens=1" %%i in (heroku_apps_list.txt) do heroku run bundle show rails --app %%i
完整代码在这里。
从命令行打印文本文件中的所有行(使用delayeexpansion):
set input="path/to/file.txt"
for /f "tokens=* delims=[" %i in ('type "%input%" ^| find /v /n ""') do (
set a=%i
set a=!a:*]=]!
echo:!a:~1!)
适用于前导空白、空行、空白行。
在win10 CMD上测试
这是我写的一个bat文件来执行文件夹中的所有SQL脚本:
REM ******************************************************************
REM Runs all *.sql scripts sorted by filename in the current folder.
REM To use integrated auth change -U <user> -P <password> to -E
REM ******************************************************************
dir /B /O:n *.sql > RunSqlScripts.tmp
for /F %%A in (RunSqlScripts.tmp) do osql -S (local) -d DEFAULT_DATABASE_NAME -U USERNAME_GOES_HERE -P PASSWORD_GOES_HERE -i %%A
del RunSqlScripts.tmp
从Windows命令行引用:
要解析一个文件,忽略注释行,输入:
for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k
这个命令解析Myfile.txt中的每一行,忽略以分号开头的行,并将每行的第二和第三个标记传递给FOR主体(标记由逗号或空格分隔)。FOR语句体引用%i来获取第二个令牌,引用%j来获取第三个令牌,引用%k来获取所有剩余的令牌。
如果您提供的文件名包含空格,则在文本周围使用引号(例如,“文件名”)。要使用引号,必须使用usebackq。否则,引号将被解释为定义要解析的字面值字符串。
顺便说一下,你可以在大多数Windows系统上找到命令行帮助文件:
"C:\WINDOWS\Help\ntcmds.chm"
或者,你可以排除引号中的选项:
FOR /F %%i IN (myfile.txt) DO ECHO %%i
推荐文章
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- 如何在Windows命令提示符下运行.sh ?
- 如何从命令行在windows中找到mysql数据目录
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- Windows FINDSTR命令的未记录的特性和限制是什么?
- 无法在Windows上从/usr/local/ssl/openssl.cnf加载配置信息
- 用Windows任务调度器运行批处理文件
- GIT克隆在windows中跨本地文件系统回购
- 如何运行一个PowerShell脚本而不显示窗口?
- PowerShell:仅为单个命令设置环境变量
- 为什么这个Windows批处理文件只执行第一行,而在命令shell中执行所有三行?
- 如何将文件内容读入批处理文件中的变量?
- 环境变量存储在Windows注册表的哪里?
- 有一个好的Valgrind Windows的替代品吗?