bat批处理去除删掉文件里每行尾端(右)空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat批处理去除删掉文件里每行尾端(右)空格相关的知识,希望对你有一定的参考价值。

请问,我有一个文件比如A.bat,其中每行末尾都有大量空格,想用bat写成一个程序可以去除右端空格(行中间的空格不去,空行的也不去),另存为As.bat.。请问如何编写?文本例子如下:
asdfasf空空空空
asd空空空空空空
woiglajgrsgklaew
空空空空空空空空
.....
我想要变成如下:
asdfasf
asd
woiglajgrsgklaew

......
多谢
用fortran解决了。

on error resume next
dim file, find, replacestr,read,count,countstr,filepath,i,j,path,cd,t,tnum,msg,finename,f,tt,ff,fso,findstr(),str
msgstr="直接按确定程序将自动指定目录为当前文件夹"
set fso=createobject("scripting.filesystemobject")
set cd=createobject("shell.application")
if cd is nothing then            '如果系统自带这个对象则直接调用吧
 set cd=nothing
 file=inputstr("请输入要处理的目标目录",msgstr)
 if file=false then quit
 if file=vbnullstring or file=msgstr then file="."
 else
 file=cd.application.browseforfolder(0,"请选择一个你要处理的目标目录",0).self.path   '创建对话框
 if file=vbnullstring then quit
end if
t=timer
for each i in fso.getfolder(file).files          '遍历文件夹
 if fso.getextensionname(i)="txt" then         '只修改txt后缀名的文件
  filepath=left(i,instrrev(i,"\\"))        '分配路径
  file=mid(i,instrrev(i,"\\")+1)         '分配文件
  filename=filepath&file
  read=fso.opentextfile(i).readall        '读取文件
  countstr=split(read,vbcrlf)         '分配文本
  count=ubound(countstr)
  for j=0 to ubound(countstr)         '循环查找
  redim preserve findstr(j)
 if right(countstr(j),1)=chr(32) then          '已找到空格并舍弃
    findstr(j)=rtrim(countstr(j))
 else 
 findstr(j)=countstr(j)       '不需要舍弃的随后补上 
   end if
  next
  str=join(findstr,vbcrlf)
  fso.createtextfile(filename).write str
  findstr=empty
 end if
next
tnum=formatnumber(timer-t,2)
tt=replace(date,"/","-")
if left(tnum,1)="." then tnum=0&tnum
msgbox "已处理完成,大约耗时 -- "&tnum&" 秒.",64,wscript.scriptname
quit
sub quit
set cd=nothing
set fso=nothing
wscript.quit
end sub
public function inputstr(str1,str2)
inputstr=inputbox(str1,wscript.scriptname,str2)
end function

引用我这个帖子中的回答,稍稍改了一下  http://zhidao.baidu.com/question/575575001.html?oldq=1#answer-1448162267

参考技术A 本来批处理是能处理, 处理一个文本应该自己找个稍高级点的文本编辑软件如word 进行高级替换(不等的空格加换行替换成换行)
另外,比如的文件名为bat文件,去掉尾部空格也许功能就变了......最好按实际需求说明,便于回答时灵活处理,等回答了再改换要求是很烦人的
参考技术B 要不要这么麻烦啊,用word查找 空格^p,替换成^p就得了,多执行几次就能替换干净

linux下处理excel里copy的某列的字符串,去除行末空格并添加特殊字段

背景:从excel里copy出一列数据到txt,然后放到lunx下处理,发现每一行末尾都是固定个数的空格,我想要在每行字符串末尾加固定字段并逗号隔开输出,

cat fastjason.txt | awk -F / ‘{print $3}‘ | sort | uniq > fast.log将特定字段取出 ;cat fast.log |xargs echo >fast.log 去掉每行末尾的不定个数空格,全部放到一行,每个应用以空格隔开;sed -i ‘s/ /\n/g‘ fast.log,将空格变换行符;然后再在每行末尾加.war, sed -i ‘s/$/&.war/g‘ fast.log;cat fast.log |xargs echo 输出到一行,每个应用以空格隔开 >sp.log;sed -i ‘s/ /,/g‘ sp.log 将空格变逗号。

cat fastjason.txt | awk -F/ ‘{print $3}‘|sort |uniq|xargs echo >a.log
sed ‘s/ /\n/g‘ a.log > b.log
sed ‘s/$/&.war/g‘ b.log >c.log
cat c.log |xargs echo >d.log
sed ‘s/\n/,/g‘ b.log > d.log





以上是关于bat批处理去除删掉文件里每行尾端(右)空格的主要内容,如果未能解决你的问题,请参考以下文章

怎么批量去除文件名里的空格?

bat批处理里怎么取得当前目录

右键菜单→新建→BAT 批处理文件

批量去除文件名中的空格

批量去除文件名中的空格

bat删除当前目录指定后缀的文件夹?