Windows Batch 读取文件并将行解析为标记和变量

2024-02-19

通过搜索这个网站并学习 Windows 批处理脚本这一荒谬的语言,我已经取得了很大的进展,但我现在陷入了困境。我有一个行数可变的文本文件,每行看起来像:

AA8315,"United States",N777AN,"American Airlines",AAL98,B772,"Boeing 777-223",AAL,"2013-06-11 23:30:47.923","2013-06-12 00:01:14.459"

我的批处理文件:

set THEDATE=2013-06-12
set THEDATABASE=c:\Kinetic\BaseStation\Basestation.sqb
set THECSVFILE=c:\Flights.csv
set THEOUTPUTFILE=c:\FlightsNew.csv
set THISLINE=""

if exist %THECSVFILE% del %THECSVFILE%
if exist %THEOUTPUTFILE% del %THEOUTPUTFILE%

:: allow time for the csv file to be deleted
timeout /t 2 /nobreak

c:\sqlite3.exe -header -csv %THEDATABASE% "select Aircraft.ModeS, Aircraft.ModeSCountry as Country, Aircraft.Registration as Reg, Aircraft.RegisteredOwners as Owner, Flights.Callsign, Aircraft.ICAOTypeCode as Type, Aircraft.Type as Model, Aircraft.OperatorFlagCode as 'Op Flag', Flights.StartTime as 'First Seen', Flights.EndTime as 'Last Seen' from Aircraft INNER JOIN Flights ON (Aircraft.AircraftID=Flights.AircraftID) where Flights.EndTime like '%THEDATE% %%' order by Flights.EndTime DESC;" >> %THECSVFILE%

::allow time for the csv to be written to file
timeout /t 5 /nobreak

::read %THECSVFILE% and loop through each line
for /F "usebackq tokens=* delims=" %%A in (%THECSVFILE%) do (
    set the_line=%%A
    call :process_line
)

:process_line
for /F "usebackq tokens=1,2,3,4,5,6,7,8,9,10 delims=[,]" %%1 in (%the_line%) do (
    set hexcode=%%1
    set country=%%2
    set reg=%%3
    set owner=%%4
    set callsign=%%5
    set planetype=%%6
    set model=%%7
    set opflag=%%8
    set firstseen=%%9
    set lastseen=%%10
    set THISLINE=%hexcode%,%country%,%reg%,%owner%,%callsign%,%planetype%,%model%,%opflag%,%firstseen%,%lastseen%
    echo %THISLINE% > %THEOUTPUTFILE%
)

(我将标记分配给变量,因为稍后我将对它们进行额外的验证和格式化。我需要首先让这部分工作!)

执行时,脚本确实循环遍历文件的每一行,但它似乎没有分配%%1到变量hexcode.

执行命令的输出如下所示:

C:\>for /F "usebackq tokens=1,2,3,4,5,6,7,8,9,10 delims=[,]" %1 in (AA8315 "United States" N777AN "American Airlines" AAL98 B772 "Boeing 777-223" AAL "2013-06-11 23:30:47.923" "2013-06-12 00:01:14.459") do (
set hexcode=%1
 set country=%2
 set reg=%3
 set owner=%4
 set callsign=%5
 set planetype=%6
 set model=%7
 set opflag=%8
 set firstseen=%9
 set lastseen=%10
 set THISLINE=,"United States" ,N807FD ,"Fedex Express" ,FDX1378 ,,"Airbus A310-324" ,FDX ,"2013-06-12 22:56:54.639" ,"2013-06-12 23:05:31.822"
 echo ""  1>c:\FlightsNew.csv
)
The system cannot find the file AA8315.

任何帮助是极大的赞赏!


这在这里工作:




    for /f "tokens=1-10delims=," %%a in ("AA8315,"United States",N777AN,"American Airlines",AAL98,B772,"Boeing 777-223",AAL,"2013-06-11 23:30:47.923","2013-06-12 00:01:14.459"") do (
     set hexcode=%%a
     set country=%%b
     set reg=%%c
     set owner=%%d
     set callsegn=%%e
     set planefype=%%f
     set model=%%g
     set opflag=%%h
     set firstseen=%%i
     set lastseen=%%j
     set THISLINE=%%a,%%b,%%c,%%d,%%e,%%f,%%g,%%h,%%i,%%j
    )
    >"c:\FlightsNew.csv" echo %THISLINE%

  

我不确定你为什么需要令牌。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows Batch 读取文件并将行解析为标记和变量 的相关文章

  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • 在 Windows 上不使用 OpenSSL 从 pfx 文件或证书存储中提取私钥

    正如标题所示 我想在不使用 OpenSSL 或任何其他第三方工具的情况下导出我的私钥 如果我需要一个 cer文件或 pfx我可以通过 MMC 或 PowerShell 轻松导出这些文件pkiclient但我找不到获取私钥的方法 https
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 更改 Wi-Fi 配置文件的密码

    在我志愿服务的长期护理医院中 每个月的第一天 访客 Wi Fi 连接的密码都会更改 这给工作人员带来了大量的工作 也给患者带来了很多挫败感 其中许多人的行动能力非常有限 是的 真正的解决方案是让 IT 团队保留相同的密码 但这不会发生 大多
  • 对于多重继承,使用隐式转换而不是 QueryInterface() 是否合法?

    假设我有一个类实现两个或多个 COM 接口 正如here https stackoverflow com questions 1742848 why exactly do i need an explicit upcast when imp
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • teracopy 如何替换默认的 Windows 副本

    我问了这个问题Windows 文件复制内部结构 动态加密 https stackoverflow com questions 24220382 windows file copy internals on the fly encryptio
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用
  • 卸载以前的版本安装新版本的安装项目

    我创建了一个安装项目并安装在Windows系统中 在安装安装项目之前 我将其设置为 DetectNewInstallerVersion true and RemovePreviousVersion True 我也每次都换版本 但是 如果我重
  • 如何向未知用户目录读取/写入文件?

    我正在尝试从用户目录 C Users USERNAME Test Source 读取和写入文件 但我未能成功找到任何有关如何自动检测用户名的资源 其中的 USERNAME上面的例子 或者无论如何 我可以让它读取和写入目录 而不需要知道用户名
  • Google Cloud SDK 无法安装“.exe;.bat;.com”不是可识别的命令

    我正在尝试在 Windows 10 笔记本电脑上安装 google cloud SDK 我尝试删除安装文件夹中的空格 并将路径添加到我的环境变量中 完整的错误是 Output folder C Users user Documents Do
  • 用于创建计划任务的 VBScript

    我正在尝试创建一个 VBScript 它创建一个批处理文件 然后创建一个计划任务来运行该批处理文件 到目前为止 我尝试过的所有操作都创建了批处理文件 但没有创建计划任务 并且我没有收到任何错误 这是我到目前为止所拥有的 Option Exp
  • Windows 中的蓝牙 AVRCP 命令会触发哪些事件

    可以这么说 只是在做一些高级侦察 对于我的潘多拉客户 Elpis http elpis adamhaile net 我支持全局媒体键 键盘上的 MediaPlayPause MediaNext 等 并且我希望能够支持AVRCP http e
  • 将所有文件与指定目录(和子目录)中的所有文件进行二进制比较

    我需要将目录及其子目录中包含的所有文件与同一目录及其子目录中包含的所有其他文件进行比较 并将匹配文件的路径记录到文本文件或 CSV 我意识到有一些软件工具可以做到这一点 但除非它可以在 Windows 中开箱即用 否则我将不被允许在我的网络
  • Windows 10 上的 LibPNG 构建问题

    我试图在 Windows 10 上构建 libpng 以获取 win32 二进制文件 但我认为有一个与 awk 解析带有 CRLF 行结尾的文件相关的问题 我尝试使用 dos2unix 命令转换文件 但没有成功 结果相同 在 make 命令
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • 批处理文件 FOR/f 扩展

    我有一个文件 directories txt 与目录名称 每个在一行上 我喜欢扩展该行 C Documents and Settings USERNAME My Documents 在我的脚本中以真实用户名运行脚本 然而 回声与线路完全相同

随机推荐

  • C#:使用未分配的局部变量,使用 foreach 和 if

    我有以下代码 我收到错误 使用未分配的局部变量 我确信这非常简单 但我很困惑 public string return Result String RssData int marketId string result foreach var
  • File.lastModified() 慢得要命!

    我正在做文件的递归副本等xcopy D http www microsoft com resources documentation windows xp all proddocs en us xcopy mspx mfr true我只想复
  • .hover(...) 和 on.("hover"...) 行为不同

    使用 JQuery 当元素处于悬停状态时 我尝试链接几个函数 我通常会使用 hover事件函数 但在阅读了一些教程后我读到了使用 on更好 因为您可以使用一个事件处理程序来监视文档中的所有冒泡事件 但是 当我将两个函数链接在一起时遇到问题
  • 在诗歌运行期间导入本地包

    我刚刚从pipenv to poetry我在从我在一些脚本中开发的本地包导入包时遇到问题 为了使这一点更具体 我的项目看起来像 pyproject toml poetry lock bin myscript py mypackage ini
  • Symfony2.5 + FOSUserBundle 检查路径显然没有找到

    我启动了一个新的 Symfony 应用程序 在其中使用 FOSUserBundle 我安装了它 加载了捆绑包并配置了它 这是我的configuration yml fos user db driver orm firewall name m
  • 使用 Xcode 7 禁用项目和 cocoapods 依赖项的位码?

    如何禁用项目和 cocoapod 依赖项的位码 这是我尝试使用 Xcode 7 运行项目时遇到的错误 不包含位码 您必须在启用位码 Xcode 设置 ENABLE BITCODE 的情况下重建它 从供应商处获取更新的库 或禁用该目标的位码
  • 本地化包含名称列表的字符串

    我有包含名称列表的字符串 如下所示 约翰向金 凯利 李和鲍勃询问了新年计划 名单中的名字数量可以非常多 我如何在 Java 中本地化它 我正在考虑 ResourceBundle 和 MessageFormat 我将如何在 MessageFo
  • 如何忽略通过 http 发送的属性

    我的应用程序中有一个接口 用于维护我想要发送到数据库的属性以及我不发送到数据库的属性 具体来说 我维护一个名为state可以设置为open or null 关闭 然后触发 Angular2 的动画state https angular io
  • RemoteActor 取消注册 actor

    我正在玩 RemoteActors 现在我想知道 如果我关闭 RemoteActor 会发生什么 该 Actor 可通过 RemoteActor alive 和 RemoteActor register 来使用 我找不到两者的逆 活着和注册
  • 如何在java中使用lucene添加自定义停用词

    我正在使用 lucene 删除英语停用词 但我的要求是删除英语停用词和自定义停用词 下面是我使用 lucene 删除英文停用词的代码 我的示例代码 public class Stopwords remove public String re
  • 从 Mastercard/VISA 借记卡/信用卡读取 EMV 数据 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试构建一个应用程序来读取 编码卡上的数据 如 PAN 到期日 客户名称 PIN 等信息 到目前为止 我发现我需要发送 APDU
  • 导航抽屉图标未显示(Sherlock 操作栏)

    让导航抽屉与 sherlock 操作栏配合使用 但我无法显示 3 行图标 如 gmail 而不是正常的向上按钮 getSupportActionBar setIcon R drawable myIcon getSupportActionBa
  • “ExecuteScalar:连接属性尚未初始化。”

    我是 C 新手 目前在不调试的情况下运行该程序时遇到一些问题 这是我的项目的登录页面 我创建了一个基于服务的数据库 我想连接到数据库中表 Table 中的用户名和密码数据 但是 我遇到了一个问题 ExecuteScalar 连接属性尚未初始
  • R 函数在 left_join 中进行故障恢复?

    我有 20 多个不同的数据表 其中的数据由相同的编码系统 北美行业分类系统 NAICS 索引 我想将它们连接到一个表中 问题是每个表中都有不同级别的详细信息 当我加入时 我希望通过失败编码系统的层次结构直到找到匹配来找到最佳匹配 一个常规的
  • 如何在 VBA 中处理工作表(unicode VBA 显示和处理)中西里尔字母引起的错误(#REF)?

    我想从特定的工作簿中获取数据 有几十个工作簿 循环部分工作正常 但下面的代码不起作用 因为工作表采用西里尔字母 并且它们给出了值 到sheet As String范围 我想问如何在不打开工作簿的情况下强制重命名它 无需Workbook Op
  • Laravel 4 Auth:尝试不起作用

    我在使用 Laravel 4 Auth attempt 方法时遇到了困难 遵循了正确的文档 阅读了几个 SO 线程 但我仍然无法让它工作 userData array email gt email protected cdn cgi l e
  • MySQL 使用日期时间进行选择,仅按日期分组

    是否可以从 MySQL 表中选择日期时间字段并仅按日期分组 我正在尝试输出多次发生的事件列表 并按发生日期分组 我的表 数据如下所示 时间戳是日期时间字段 1 2010 03 21 18 00 00 Event1 2 2010 03 21
  • 如何使用 Perl 将字符串转换为浮点数?

    有没有类似的功能int 哪个可以将字符串转换为浮点值 我目前正在使用以下代码 input int substr line 1 index line 1 我需要转换返回的字符串substr浮 只需使用它即可 在 Perl 中 看起来像数字的字
  • 如何根据一定的标准对列表进行排序

    例如我有一个清单 list word1 0 234 word2 0 2 word3 0 5 word4 0 67 我想按重要性对其进行排序 重要性是指该值距 0 5 有多远 排序后的列表应该是 list word2 0 2 word1 0
  • Windows Batch 读取文件并将行解析为标记和变量

    通过搜索这个网站并学习 Windows 批处理脚本这一荒谬的语言 我已经取得了很大的进展 但我现在陷入了困境 我有一个行数可变的文本文件 每行看起来像 AA8315 United States N777AN American Airline