|
|
本帖最后由 nfans 于 2023-11-22 15:25 编辑
需求:
1,删除a.txt中行首4个空格(所有行:行首指定数量)
2,同时保留原文件中所有空行(所有空行不做处理)
本人对批处理是门外汉,利用百度来的代码已实现删指定数量行首字符,但同时也会删除所有空行,求助如何在此基础上兼顾保留空行。
因不能上传附件,还请复制文本测试,在此感谢各位大神!
初测批处理代码:
- @echo off
- set fn=a.txt
- (for /f "usebackq delims=" %%i in ("%fn%")do (
- echo;%%i>con
- set "h=%%i"
- setlocal enabledelayedexpansion
- echo;!h:~4!
- endlocal))>b.txt
- pause
复制代码 待测示例文本如下:a.txt
- Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
- Set colItems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
- For Each objItem in colItems
- OSA = objItem.OSArchitecture
- Next
- Const HKLM = &H80000002
- Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
- If OSA = "64-bit" Then
- oReg.GetStringValue HKLM,"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\XReplace","UninstallString",UninstallString
- If Not IsNull(UninstallString) Then InstallLocation = Replace(UninstallString,"uninstall","XReplace")
- Else
- oReg.GetStringValue HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XReplace","UninstallString",UninstallString
- If Not IsNull(UninstallString) Then InstallLocation = Replace(UninstallString,"uninstall","XReplace")
- End If
- Set WshShell = WScript.CreateObject("WScript.Shell")
- If IsNull(InstallLocation) Then
- WshShell.Popup "软件未安装!", 5, "错误", 0
- WScript.Quit
- End If
- Name = Array("XReplace.exe")
- Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate,(Debug)}!\\.\root\cimv2")
- Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process")
- For Each objProcess In colProcessList
- For Each Process In Name
- If LCase(objProcess.Name) = LCase(Process) Then
- objProcess.Terminate()
- End If
- Next
- Next
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- If objFSO.FileExists(InstallLocation) Then
- Set ado_stream = CreateObject("ADODB.Stream")
- ado_stream.Type = 1
- ado_stream.open
- ado_stream.LoadFromFile InstallLocation
- ado_stream.position = 215133
- ado_stream.Write HexToByte("E9B701000090")
- ado_stream.position = 256771
- ado_stream.Write HexToByte("E9CE02000090")
- ado_stream.position = 277094
- ado_stream.Write HexToByte("01")
- ado_stream.position = 313599
- ado_stream.Write HexToByte("B80100")
- ado_stream.position = 313855
- ado_stream.Write HexToByte("B80100")
- ado_stream.position = 314442
- ado_stream.Write HexToByte("B80100")
- ado_stream.position = 314901
- ado_stream.Write HexToByte("B80100")
- ado_stream.SaveToFile InstallLocation, 2
- ado_stream.Close
- Set ado_stream = Nothing
- End If
- WshShell.Popup "超级字符串批量替换工具 v4.2.5 破解补丁" & vbnewline & vbnewline & "制作:ChiShingChan 编程语言:VBScript",10,"完成",0
- Function HexToByte(hexStr)
- Set xmldom = Wscript.CreateObject("Microsoft.XMLDOM")
- Set byteObj= xmldom.createElement("byteObj")
- byteObj.dataType = "bin.hex"
- byteObj.nodeTypedValue = hexStr
- HexToByte=byteObj.nodeTypedValue
- End Function
复制代码
|
|