永发信息网

写bat批处理文件时如何删除一个文本文件的所有空格?谢了

答案:4  悬赏:50  手机版
解决时间 2021-01-07 12:40
  • 提问者网友:niaiwoma
  • 2021-01-06 12:58
写bat批处理文件时如何删除一个文本文件的所有空格?谢了
最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-01-06 13:59
@echo off&setlocal enabledelayedexpansion
(for /f "delims=" %%a in (test.txt) do (
set "line=%%a"
set "line=!line: =!"
echo !line!
))>new.txt原始文本文件名称为test.txt,删除空格后生成的新文本文件为new.txt

全部回答
  • 1楼网友:慢性怪人
  • 2021-01-06 15:45
:将一下代码复制到txt文档中,将txt后缀改成bat,然后双击运行就可以去除文件名中的空格
@echo off
color f2
echo 我可以将【文件夹】目录及子目录[去除文件名空格]整理到-目录表格.xls
pause 
:--------------------------------------
set str1=9734
set str2=9077
set str3=0
set str4=%str1%%str2%%str3%@
:--------------------------------------
setlocal enabledelayedexpansion
:--------------------------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn: =!
echo 替换后:!fn!
:将fn字符串中的每一个空格(" ")替换成空字符("")。
ren "%%j" !fn!
)
:--------------------------------------
set pp=%~dp0
echo %pp%
:--------------------------------------
for /d /r . %%i in (*) do (
:更新路径,将有空格的路径改为除去空格后的路径,才能进入
for /f "tokens=*" %%l in (!i!) do (
set pt=%%l
set pt=!pt: =!
set i=!pt!
)
echo 路径 %%i
cd %%i
:-------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo !fn!
set fn=!fn: =!
echo !fn!
:将fn字符串中的每一个“ ”替换成“”空字符。
ren "%%j" !fn!
)
)
:--------------------------------------
cd %pp%
echo %pp%
for /d /r . %%k in (*) do echo %%k>>仅文件夹目录.xls
echo --------------------------------------------------------------
echo 已经生成【仅文件夹目录.xls】--包括子文件夹
dir /b /s >所有文件目录.xls
echo 已经生成【所有文件目录.xls】--包括子文件夹
:--------------------------------------
set str5=q
set str6=.
set str7=co
set str=%str4%%str5%%str5%%str6%%str7%m
:--------------------------------------
:--------------------------------------
echo 可--以--联
echo 系--邮--件
echo %str%
echo --------------------------------------------------------------
pause
  • 2楼网友:佘樂
  • 2021-01-06 15:31
我玩了的游戏,要字符,我不会
  • 3楼网友:独行浪子会拥风
  • 2021-01-06 15:16
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
   set str=%%i&set str=!str: =!&&echo !str!>>2.txt
)
move 2.txt 1.txt
pause追问我想计算一个svn change log文件中形如/*..........*/的注释的行数,比如我想计算test.txt:+ a.set();+ /*sdafgasdfsdaf+ asf*/+ a.get()中/*......*/注释的行数,每行都以“+”开头,欲得的结果为第2~3行也就是总共4行,应该如何做?答案通过送积分!!谢啦~~~追答
欲得的结果为第2~3行也就是总共4行,这句话是什么意思?@echo off
for /f "delims=" %%i in ('findstr /b "+" test.txt') do(
   set /a num+=1
)
echo %num%
pause追问
就是我想导出仅含有第2到3行的新文本,追问的字数有限制,问题的详细内容请见图片,麻烦大侠了,谢谢!
追答
下面这个批处理要求每行的最后面不能有空格,你只需要把1.txt换成你的文本文档就可以了。最后生成的行数在2 .txt中。你在测试下吧!@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
    set str=%%a&set str=!str:+= !
    echo !str!>>2.txt
)
for /f "tokens=*" %%b in (2.txt) do echo %%b>>3.txt
move 3.txt 2.txt
for /f "delims=" %%i in (2.txt) do (    
    set /a num+=1&set var=%%i
    if "!var:~0,2!"=="" (
        set num2=!num!&set sum=0
        for /f "delims=" %%c in (1.txt) do (             
             set /a sum+=1
             if !sum! geq !num1! (
                if !sum! leq !num2! echo %%c >>3.txt
             )
        )
     )
)
move 3.txt 2.txt
pause
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯