gpt4 book ai didi

windows - 如何使用批处理脚本从文件中删除第一个和最后一个字符?

转载 作者:可可西里 更新时间:2023-11-01 09:49:59 26 4
gpt4 key购买 nike

这是我用来复制到输出文件的输入文件内容。

#sdfs|dfasf|sdfs|
sdfs|df!@$%%*&!sdffs|
sasdfasfa|dfsdf|#sdfs|

我需要做的是省略第一个字符“#”和最后一个字符“|”在输出文件中。所以输出将是,

sdfs|dfasf|sdfs|
sdfs|df!@$%%*&!sdffs|
sasdfasfa|dfsdf|#sdfs

批处理脚本对我来说是新手,但我尽力尝试了这些代码,

:: drop first and last char

@echo off > xyz.txt & setLocal EnableDelayedExpansion

for /f "tokens=* delims=" %%a in (E:\abc1.txt) do (
set str=%%a
set str=!str:~1!
echo !str!>> xyz.txt
)

如您所见,它无法产生所需的输出。

现在产生的输出是这样的

sdfs|dfasf|sdfs|
dfs|dfsdffs|
asdfasfa|dfsdf|#sdfs|

我不知道为什么字符串 !@$%%*&! 也被撕裂了!?

最佳答案

下一个脚本,调用文件 far.vbs,然后创建新文件。

代码:

set OldFile=E:\abc1.txt
set NewFile=E:\xyz.txt
echo. > "%NewFile%"
start far.vbs "%NewFile%" "%OldFile%"


far.vbs — 从文件中删除第一个和最后一个字符。
在与第一个脚本相同的文件夹中创建新文件 far.vbs,并粘贴以下代码:

Set OldFile = CreateObject("Scripting.FileSystemObject")
Set rdOldFile = OldFile.OpenTextFile(Wscript.Arguments(1), 1)
oContent = rdOldFile.ReadAll
rdOldFile.Close

Set lOldFile = CreateObject("Scripting.FileSystemObject")
Set lrdOldFile = OldFile.OpenTextFile(Wscript.Arguments(1), 1)
oLen = len(lrdOldFile.ReadAll)
lrdOldFile.Close

oData = oContent
oData = Right(oContent, oLen-1)
oData = Left(oData, oLen-2)

Set NewFile = CreateObject("Scripting.FileSystemObject")
Set fData = NewFile.OpenTextFile(Wscript.Arguments(0), 2)
fData.WriteLine (oData)
fData.Close

关于windows - 如何使用批处理脚本从文件中删除第一个和最后一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com