是否有相当于Windows cmd.exe(或其他XP标准工具)中的’cut -c’
发布时间:2020-12-13 22:43:42 所属栏目:Windows 来源:网络整理
导读:我有一些固定行大小的文件,固定字段大小,我需要从中提取信息. Nornmally,我使??用Cygwin(cut et al),但在这种情况下,由于(愚蠢的)管理策略我无法改变,因此不是一个选项.必须使用 Windows附带的标准XP工具集完成. 我需要在偏移量22(从零开始)提取偏移量为7和4
我有一些固定行大小的文件,固定字段大小,我需要从中提取信息. Nornmally,我使??用Cygwin(cut et al),但在这种情况下,由于(愚蠢的)管理策略我无法改变,因此不是一个选项.必须使用
Windows附带的标准XP工具集完成.
我需要在偏移量22(从零开始)提取偏移量为7和4个字符的10个字符,然后将它们输出到文件中,但稍微扭曲: >第一个字段可能有负号,正号或无符号(在开头或结尾).标志应该移到前面,如果是正面则完全移除. 例如: 1 2 3 <- ignore (these lines not in file,) 0123456789012345678901234567890123456789 <- ignore ( here only for info.) xxxxxxx 15.22-yyyyyABCDzzzzzzzzzzz... xxxxxxx 122.00+yyyyy XX zzzzzzzzzzz... xxxxxxx 9yyyyyYYY zzzzzzzzzzz... 应该产生(<表示行尾): -15.22,ABCD< 122.00,XX< 9,YYY<
如果使用现代窗口,本机不限于cmd.exe命令,可以使用vbscript.如果你的政策也不使用vb??script,那么我猜你应该解雇你的管理:)
Set objFS=CreateObject("Scripting.FileSystemObject") strFile = "c:testfile" Set objFile = objFS.OpenTextFile(strFile) strFirstLine = objFile.ReadLine Do Until objFile.AtEndOfStream strLine= objFile.ReadLine var1 = Mid(strLine,10) ' do substring from position 10 onwards ' var2 = Mid (strLine,<pos>,<length>) ' get next offset and save to var2 WScript.Echo var1 & var2 ' print them out. Loop 基本上,要“剪切”字符串的字符,可以使用Mid()函数.请查看vbscript documentation以了解更多信息. 将上面保存为test.vbs,并在命令行上执行 c:test> cscript /nologo test.vbs > newfile 当然,“substring”也可以用纯cmd.exe来完成,但我会把它留给其他人来指导你. 由Pax更新:根据这个答案,我想出了以下这将是一个良好的开端: option explicit dim objFs,objFile,strLine,value1,value2 if wscript.arguments.count < 1 then wscript.echo "Usage: process <input-file>" wscript.quit end if set objFs=createObject("Scripting.FileSystemObject") set objFile = objFs.openTextFile(wscript.arguments.item(0)) do until objFile.atEndOfStream strLine= objFile.readLine value1 = trim(mid(strLine,8,10)) value2 = trim(mid(strLine,23,4)) if right(value1,1) = "-" then value1 = "-" & left(value1,len(value1)-1) if right(value1,1) = "+" then value1 = left(value1,len(value1)-1) if left(value1,1) = "+" then value1 = mid(value1,2) wscript.echo value1 & "," & value2 loop 这符合我们的所有要求.我们可以稍后将偏移量和长度转换为命令行参数. 结束更新. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows – sox FAIL util:无法加载MAD解码器库(libmad)函
- windows – 进程的Private Bytes如何显着低于对系统提交费用
- winapi – 当你可以使用RET时,为什么在Win32下需要ExitProc
- windows-vista – 两个编辑器显示不同内容的奇怪,可能的“影
- windows-server-2003 – 服务器实际需要多少RAM?
- windows上配置rsync服务器收集linux主机巡检报告
- windows – Iscsi成立 – 任何理由我不应该做我正在做的事情
- windows-server-2003 – 将性能计数器编写到MS SQL数据库的
- [疑难杂症]__点击win10屏幕最上方的边界会莫名其妙打开Inte
- 无法安装Windows 7 SDK(需要已安装的.NET Framework 4)
推荐文章
站长推荐
热点阅读