中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 空格 换成   上一主题 | 下一主题
online365
初级用户




积分 182
发帖 75
注册 2006-10-11
状态 离线
『楼 主』:  空格 换成  

百度贴上去的东西都把空格给缩略掉了.
想让高手帮忙写个批处理让所有的空格都换成 
这样就方便,而且好看些了.
3Q

2007-6-20 10:34
查看资料  发送邮件  发短消息 网志  OICQ (123000365)  编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  

字符替换就可以了:
set str=%filename: = %




2007-6-20 10:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
online365
初级用户




积分 182
发帖 75
注册 2006-10-11
状态 离线
『第 3 楼』:  

- -|| 不是很懂啊..麻烦把代码全部贴出来,我自己再研究研究..

我是想把 空格 换成    再生成一个新的文件.

2007-6-20 13:05
查看资料  发送邮件  发短消息 网志  OICQ (123000365)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  


sed "s/ /\ /g" yourfile


2007-6-20 16:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
my3439955
中级用户




积分 272
发帖 99
注册 2006-6-2
状态 离线
『第 5 楼』:  

很久以前做过一个
Option Explicit
'By Shilyx 2006.12.15 oversleep@163.com (2007.3.31 新加打开文件和拷贝到剪贴板功能
Dim fso, ts, target, output, objDialog
Const SpaceToNBSPRate = 1
Const TabToSpace = 8
Const ForWriting = 2
Const ForReading = 1
Const adTypeBinary = 1

If WScript.Arguments.Count < 1 Then
    Set objDialog = CreateObject("UserAccounts.CommonDialog")
    objDialog.Filter = "All Files|*.*"
    objDialog.InitialDir = "."
    If objDialog.ShowOpen = 0 Then
        WScript.Quit
    Else
        target = objDialog.FileName
    End If
    Set objDialog = Nothing
Else
    target = WScript.Arguments(0)
End If

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(target) Then
    MsgBox "找不到文件" & target, 16, "错误"
    WScript.Quit
End If

If Not IsTextFile(target) Then
    WScript.echo target & "不是有效的文本文件"
    WScript.Quit
End If

GetOutput
If output = target Then WScript.Quit
ChangeFileFormat target, output, SpaceToNBSPRate
If vbYes = MsgBox("输出已经复制到系统剪贴扳,并且保存在" & output & VbCrLf & "现在是否打开输出文件?",vbYesNo,"By Shilyx 2006.12.15") Then
    Dim ws
    Set ws = WScript.CreateObject("WScript.Shell")
    ws.Run "Notepad " & Chr(32) & output & Chr(32)
End If

Function IsTextFile(file)
    Dim aso, ch
    IsTextFile = True
    Set ASO = CreateObject("ADODB.Stream")
    aso.Type = adTypeBinary
    aso.Open
    aso.LoadFromFile file
    aso.Position = 0
    Do While Not aso.EOS
        ch = aso.Read(1)
        If ASCB(ch) = 0 Then  
            IsTextFile = False
            Exit Function
        End If
    Loop
End Function

Sub GetOutput
    Dim len1, len2
    output = WScript.ScriptFullName
    len1 = Len(output)
    len2 = Len(fso.GetFileName(output))
    output = Left(output, len1 - len2)
    output = output + "output.txt"
End Sub

Sub CopyToClipBoard(Text)
    Dim objIE
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Navigate("about:blank")
    objIE.Document.ParentWindow.ClipboardData.SetData "text", Text
    objIE.Quit
End Sub

Sub ChangeFileFormat(input, output, nSpace)
    Dim line, Fin, Fout, NewLine, AllNewLines
    Set Fin = fso.OpenTextFile(input, ForReading)
    Set Fout = fso.CreateTextFile(output, ForWriting)
    Do While Not Fin.AtEndOfStream
        line = Fin.ReadLine
        NewLine = ChangeLine(line, nSpace)
        AllNewLines = AllNewLines & vbCrLf & NewLine
        Fout.WriteLine(NewLine)
    Loop
    Fin.Close
    Fout.Close
    CopyToClipBoard AllNewLines
End Sub

Function ChangeLine(line, nSpace)
    Dim SpaceNum
    If Replace(line, " ", "") = "" Then
        ChangeLine = Chr(38) + "nbsp;"
        Exit Function
    End If
    line = RTrim(line)
    SpaceNum = 0
    Do While True
        If Left(line, 1) = " " Then
                  SpaceNum = SpaceNum + 1
              ElseIf Left(line, 1) = Chr(9) Then
                  SpaceNum = SpaceNum + TabToSpace
              Else
                  Exit Do
              End If
              line = Right(line, Len(line) - 1)
    Loop
    ChangeLine = GetNBSP(SpaceNum * nSpace) & Trim(line)
End Function

Function GetNBSP(SpaceNum)
    GetNBSP = Space(SpaceNum)
    GetNBSP = Replace(GetNBSP, " ", Chr(38) + "nbsp;")
End Function
http://hi.baidu.com/shilyx/blog/ ... 93f802738da5c1.html



X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
2007-6-22 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
my3439955
中级用户




积分 272
发帖 99
注册 2006-6-2
状态 离线
『第 6 楼』:  

缩略掉的只是每行开头的空格
行中间和末尾的不做改动



X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
2007-6-22 13:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 7 楼』:  

chr(38)?
VBS对这个没有转义,为什么不直接"&nbsp;"

2007-6-22 21:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
my3439955
中级用户




积分 272
发帖 99
注册 2006-6-2
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by slore at 2007-6-22 21:50:
chr(38)?
VBS对这个没有转义,为什么不直接"&nbsp;"

这个并非是出于转义的考虑,由于这个工具在百度上发过,因此直接使用&nb..的话,在百度上显示仍然是一个空格,不利于传播,复制不来



X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
2007-6-23 19:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: