我有大约700. tcx文件(旧的GPS运行数据,如果你感兴趣...)。
第一行是:
<?xml version="1.0" encoding="UTF-8"?>
这是10个空格在开始,这是阻止我导入这些数据到Garmin连接(我得到了一个新的Garmin手表)。
所以,我需要删除第一行700个文件前面的空白,我尝试用批处理文件自动完成这个过程(尽管考虑到我花了这么长时间来尝试做这个,手工完成会更快...)
到目前为止,我得到了:
@echo off
setlocal enabledelayedexpansion
for /F "tokens=1" %%A in (C:\[path]\[filename].tcx) do (
set line=%%A
echo !line:~1! >> C:\[path]\[filename].tcx
)
endlocal
其中[path]是当前存储文件的路径,filename是我测试的文件。一旦我让它工作,我将用 * 替换[filename
不幸的是,我的方法现在不太管用:
首先,它会遍历整个文件,而不仅仅是第一行;其次,在每一行上,它不仅仅删除前导空格,它会删除第一个字符(即"〈")之前的所有内容,然后也会删除遇到的下一个空格之后的所有内容。
我知道我的尝试有点可悲,但我希望能学到东西!
1条答案
按热度按时间tuwxkamq1#
在应用于真实的数据之前,始终根据测试目录进行验证。
请注意,如果文件名不包含空格之类的分隔符,则可以省略
usebackq
和%filename1%
周围的引号。这样就可以完成任务了,它只需要读取每个文件的第一行,去掉前导空格(默认的
delims
之一)并将其发送到输出,重置first
标志以防止剩余数据的回流。下一步是复制除第一行之外的所有行。
通过将两个
for
括在圆括号中并进行重定向,将所有这些集合在一起。请注意,源目录和目标目录必须不同。