想用批处理 删除一个文件夹内多个 TXT文本的第一列 把第二列数据顶头 或者删掉每行的前17个字符 数据如下

前面的19行是头文件要需要删掉然后剩下的数据第一列删掉保留第二列并且顶头数据有很多行~~如果按列删除不好判断就删除每行的前17个字符留下后面的11620391184000... 前面的19行是头文件 要需要删掉 然后剩下的数据 第一列删掉 保留第二列 并且顶头
数据有很多行~~ 如果按列删除不好判断 就删除每行的前17个字符 留下后面的

1162039118 4000 3
Input1(t)

1 32768 1 2 32768 1 0
1.02400000000000e+004 1.00000000000000e+000 1.00000000000000e+001 1.00000000000000e+000 0
0 32768 1 0
17 0 0 0 0 1 0.00000000000000e+000 9.76562514551915e-005
0
11 0 0 0 1 1 0.00000000000000e+000 1.00000000000000e+000
0
0 0 0 0 0 1 0.00000000000000e+000 1.00000000000000e+000
0
0 0 0
0.0000000E+000 -8.4621971E-003
9.7656251E-005 3.0548381E-006
1.9531250E-004 5.1721715E-004
2.9296876E-004 -5.3078406E-003
3.9062501E-004 -1.0586553E-004
4.8828125E-004 -3.6200217E-003
5.8593752E-004 -3.4688199E-003
6.8359374E-004 -1.7025720E-003
7.8125001E-004 -3.4792055E-003
8.7890628E-004 -2.7445080E-003
9.7656250E-004 4.1031619E-003
1.0742188E-003 -8.9623779E-003
1.1718750E-003 -1.9840279E-003
1.2695313E-003 6.2096249E-003
1.3671875E-003 -1.7419474E-002
1.4648438E-003 4.2958730E-003
1.5625000E-003 9.4992109E-004
1.6601563E-003 -1.4083743E-002
1.7578126E-003 7.8553520E-003
1.8554687E-003 -4.7166273E-003
1.9531250E-003 -4.9354834E-003
2.0507814E-003 2.7155862E-003
2.1484375E-003 -6.0951929E-003
2.2460937E-003 -1.4004346E-003
也可以不考虑头文件 直接 每行删除前17个字符 应该不难吧? 不过 最好能把指定文件夹内的TXT文件都这样处理 文件名 Input1(t) 2012-05-26, 09-43-48.txt 改成 input后面的数字 Input1(t) 2012-05-26, 09-43-48.txt →1.txt 这样最好啦!
展开
 我来答
匿名用户
2012-06-13
展开全部
删掉前面17个字符:
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo %h:~17,%
))>>OK.txt

删掉前面17个字符, 包括前19行(确定是19行哦):
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq skip=19 delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo %h:~17,%
))>>OK.txt
更多追问追答
追问
运行之后 得到的OK 文件是空白~

请把我发上来的数据全选复制存到TXT里试一下·~~
追答
不好意思,失误了。再试一下:

删掉前面17个字符:
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo !h:~17!
))>>OK.txt

删掉前面17个字符, 包括前19行(确定是19行哦):
@echo off&setlocal EnableDelayedExpansion
(for /f "usebackq skip=19 delims=" %%h in ("Input1(t) 2012-05-26, 09-43-48.txt") do (
set h=%%h
echo !h:~17!
))>>OK.txt

另外,我复制你的数据发现,前面的那些是 14行,不是19行;
删掉前17个字符,会把第二列的第一个字符(负号或空格)删掉。可能是通过百度复制粘贴造成的。你试验一下,可以修改里面的 skip 和 echo !h:~17! 调整来适应你实际的数据。
sudoku52
2012-06-13 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4883万
展开全部
@echo off
setlocal enabledelayedexpansion
for /f "tokens=2* delims=t(" %%i in ('dir/b input*.txt') do (
set fn=input%%i(t%%j
(for /f "skip=19 tokens=2" %%k in ('type "!fn!"') do echo %%k)>%%i.txt
ren del "!fn!")
追问
使用之后无变化呀~~~
追答
最后一句删除了光保留最后的括号。
或者看看我测试的过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JooKin
2012-06-14 · TA获得超过687个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:381万
展开全部
sed "1,19d;s/.\{16\}//;p" Input1(t) 2012-05-26, 09-43-48.txt
gawk "NR>19{print $2}" Input1(t) 2012-05-26, 09-43-48.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c39e18612
2012-06-13
知道答主
回答量:2
采纳率:0%
帮助的人:2.9万
展开全部
这个问题有点难度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式