我有一个包含字符串的文本文件:
pub:
04:d6:b6:f2:98:ff:94:d8:3c:36:ad:5f:86:40:aa:
d1:5a:e1:87:5d:55:9d:ad:8b:2b:fc:18:e7:bb:47:
7f:9f:9a:62:c6:19:3a:9e:65:62:4e:5e:98:6d:db:
0e:7d:f9:22:a3:ca:cb:12:b2:ed:eb:14:0c:b3:31:
59:02:17:6d:6a
我需要从头开始删除04,并删除':'从字符之间打印出来,用一行代码打印出来:
d6b6f298ff94d83c36ad5f8640aad15ae1875d559dad8b2bfc18e7bb477f9f9a62c6193a9e65624e5e986ddb0e7df922a3cacb12b2edeb140cb3315902176d6a
如何使用Windows命令执行此操作?
答案 0 :(得分:4)
非常简单:
@echo off
setlocal enabledelayedexpansion
set "first=true"
(for /f "eol=p delims=" %%a in (input.txt) do (
set "line=%%a"
if defined first (set "line=!line:~2!" & set "first=")
<nul set /p ".=!line::=!"
))>output.txt
逐行读取输入文件
使用标志(first
)检查第一行并删除前两个字符
删除冒号和
使用<nul set /p
进行写操作而不换行。
编辑,因为在评论中结果显示,您的文件实际上只有一个长行。这会将处理方式更改为:
for /f %%a in (input.txt) do set "line=%%a"
set "line=%line:pub:04:=%"
set "line=%line::=%"
echo %line%
注意:变量只能容纳一定数量的数据,因此当该行超过此限制时,此apporach将失败。
答案 1 :(得分:1)
你的问题很混乱。你先说:&#34;我有一个文本文件,其中包含字符串:&#34; ,但示例数据有六行,可以视为六个字符串,所以在这一点上我们不知道真正的数据格式是什么。也许你在这里用六个部分写一条长线?
接下来,你说&#34;我需要从这个&#34; 的开头删除04,但如果数据不 a {会发生什么? {1}}一开始?也许你想删除第一个元素,即使它不是Cursor cursor = rawQuery("select IdColumn, TextColumn from Comments where whereArgs ",
new String[]{whereArgs});
adapter = new android.support.v4.widget.SimpleCursorAdapter(context,
android.R.layout.two_line_list_item,
cursor,
new String[]{"IdColumn", "TextColumn"},
new int[]{android.R.id.text1, android.R.id.text2},
0);
listView.setAdapter(adapter);
}
?
通过这种方式,我们必须假设几个点,以便尝试编写有效的解决方案。
下面的批处理文件用几行读取文件,删除第一行(即使它不包含04
),然后删除第一个冒号分隔的元素(即使它不是04
):
pub:
在此代码中,还有其他假设隐含在命令的工作方式中,例如不包含空格和感叹号的行。当然,如果真实数据文件的格式不同,该程序将失败......