我是批处理编码的新手,请帮助我,我正在尝试编写一个批处理文件,可以删除每行10位后的所有单词,10位后插入.txt或.csv文件中的文件名没有延期。但我无法获得正确的代码。
我的文件就像下面的文件
文件名 - 1234567.txt
数据样本:
1234567890;you are my best friend
我只想删除所有开头的东西;并将其替换为以下样本数据。
想要那样的输出:
1234567890,1234567
输出带有前十个字母的逗号文件名,没有扩展名。
这批编码中最好的人请帮助我。
答案 0 :(得分:0)
首先,在批处理文件的顶部(在第一行下)使用setlocal
setlocal ENABLEDELAYEDEXPANSION
使用forfiles
获取没有扩展名的文件名,然后将所有输出发送到临时文件中:
forfiles /m 1234567.txt /c "cmd.exe /c echo @fname">temp.txt
使用for
获取文件名:
for /f "tokens=*" %%a in (temp.txt) do set filename=%%a
确保删除文件名中的"
!
set filename=%filename:"=%
现在再次使用for
循环来循环文件中的每一行,然后在另一个文件中打印一个新行:
for /f "tokens=*" %%a in (1234567.txt) do (
set line=%%a
set firsttenchars=!line:~0,10!
rem The above line is used to get first 10 lines (start from char 0)
set newline=!firsttenchars!,%filename%
echo !newline!>>temp1.txt
)
最后一件事是移除旧文件,然后将temp1.txt
重命名为1234567.txt
:
del 1234567.txt>nul
ren temp1.txt 1234567.txt
现在您只需将所有代码放在一起放入1个文件中,您将获得如下结果:
1234567890,1234567