无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2134|回复: 43
打印 上一主题 下一主题

[求助] bat处理文本,如何保留所有空行

  [复制链接]
1#
发表于 2023-11-22 14:42:20 | 显示全部楼层
本帖最后由 newyun 于 2023-11-22 14:48 编辑


@echo off
setlocal enabledelayedexpansion

set input_file=a.txt
set output_file=output.txt

for /f "tokens=*" %%a in (%input_file%) do (
    set line=%%a
    echo !line:~4!>> %output_file%
)
del a.txt /q
move output.txt a.txt

点评

你好,这个代码会删除所有行首的空字符,不是指定数量,并且也会删除所有空行  详情 回复 发表于 2023-11-22 15:01
回复

使用道具 举报

2#
发表于 2023-11-22 15:03:38 | 显示全部楼层
我测试过是删除前4。比如原a.txt是
11111111  11111111  
22222222  22222222  
33222233  33333333  
42222444  44444444  
11222211  11111111  
22222222  22222222  
33222233  
44222244  
删除完后是

1111  11111111  
2222  22222222  
3333  33333333  
4444  44444444  
1111  11111111  
2222  22222222  
3333  
4444  

点评

前面表述不清,主要是删行首若干空格,并同时保留空行  详情 回复 发表于 2023-11-22 15:06
回复

使用道具 举报

3#
发表于 2023-11-22 15:28:25 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion

set "inputFile=a.txt"
set "outputFile=b.txt"

if not exist %inputFile% (
echo File %inputFile% does not exist.
exit /b 1
)

for /f "tokens=*" %%a in (%inputFile%) do (
set "line=%%a"
set "line=!line:~0,1!!line:~1!"
echo !line! >> %outputFile%
)
del /q a.txt
move b.txt a.txt

点评

是删所有行行首,并保留空格,请注意审题,所以结果还不正确 空格与空行别弄混了  详情 回复 发表于 2023-11-22 15:39
回复

使用道具 举报

4#
发表于 2023-11-22 15:42:25 | 显示全部楼层
nfans 发表于 2023-11-22 15:39
是删所有行行首,并保留空格,请注意审题,所以结果还不正确

空格与空行别弄混了

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}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 & "鍒朵綔锛欳hiShingChan  缂栫▼璇█锛歏BScript",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
这是 测试过来的结果,会把空行也处理掉,我想不出更好的办法了。我没转成ANSI所以中文乱码了。你注意下就行了

点评

先用findstr /n给原文件加行号,再去掉,就能留空行了。 在9楼基础上改改试试。  详情 回复 发表于 2023-11-22 15:49
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-16 08:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表