我想知道如何循环通过文本文件中的每一行使用Windows批处理文件和处理每行文本相继。
当前回答
或者,你可以排除引号中的选项:
FOR /F %%i IN (myfile.txt) DO ECHO %%i
其他回答
如果你有NT-family的Windows(使用cmd.exe作为shell),试试FOR /F命令。
或者,你可以排除引号中的选项:
FOR /F %%i IN (myfile.txt) DO ECHO %%i
@ kraus先生的回答很有启发性。另外,如果您想加载与批处理文件位于同一目录中的文件,请在文件名前加上%~dp0。这里有一个例子:
cd /d %~dp0
for /F "tokens=*" %%A in (myfile.txt) do [process] %%A
注意:如果你的文件名或目录(例如上面例子中的myfile.txt)有一个空格(例如:'my file.txt'或'c:\程序文件'),使用:
for /F "tokens=*" %%A in ('type "my file.txt"') do [process] %%A
,使用type关键字调用type程序,该程序显示文本文件的内容。如果您不想承受调用type命令的开销,您应该将目录更改为文本文件的目录。注意,带空格的文件名仍然需要type。
我希望这能帮助到一些人!
使用cmd.exe和
for /F "tokens=*" %F in (file.txt) do whatever "%F" ...
仅适用于“正常”文件。对于巨大的文件,它失败得很惨。
对于大文件,你可能需要使用Powershell和类似的东西:
[IO.File]::ReadLines("file.txt") | ForEach-Object { whatever "$_" }
或者如果你有足够的内存:
foreach($line in [System.IO.File]::ReadLines("file.txt")) { whatever "$line" }
这对我来说是一个250 MB的文件,包含200多万行,其中for /F…命令行写了几千行就卡住了。
关于foreach和foreach - object的区别,请参见了解foreach和foreach - object。
(字幕:在PowerShell中逐行读取文件)
修改示例在这里列出我们的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
完整代码在这里。
推荐文章
- 如何在命令提示符中使用空格?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 命令行从操作系统级配置中删除环境变量
- 在特定的文件夹中打开Cygwin
- 命令行svn for Windows?
- Gulp命令未找到-安装Gulp后错误
- 如何找到并运行keytool
- 我的Windows应用程序的图标应该包括哪些大小?
- 在Windows上设置Python simpleHTTPserver
- 如何从批处理文件运行PowerShell脚本
- 使用“start”命令并将参数传递给已启动的程序
- 无法在打开用户映射区段的文件上执行所请求的操作
- 如何编写多行命令?
- 在安装了Resharper的Visual Studio中,键盘快捷键不活跃
- 如何配置OpenFileDialog来选择文件夹?