0

我有一个first.properties文件,我正在读取该文件,跳过前 5 行并创建一个新文件,其余行为first.properties. 这工作正常。但是我在新创建的文件中的每一行都有空格。我想删除这些空格。

我使用了以下代码:

@echo off
set new=0
setlocal ENABLEDELAYEDEXPANSION
for /F "skip=5" %%L in (first.properties) do (
echo %%L>>NewProjectsInfo.properties 
)
endlocal
pause 

first.properties如下:

name=abcd
number=bcde
address=cdef
mobile=efgh
worklocation=ghij

请帮我删除空格。

4

3 回答 3

2

试试这个。当数字直接位于 >> 字符之前时,可能会出现问题。您没有使用 ENABLEDELAYEDEXPANSION,所以我也将其删除。

@echo off
set new=0
setlocal
for /F "skip=5 delims=" %%L in (first.properties) do (
>>NewProjectsInfo.properties echo %%L
)
endlocal
pause 
于 2013-05-15T13:07:33.460 回答
1

您的代码后面有一个空格NewProjectsInfo.properties。如果将其删除,它将按您的预期工作。

这很可悲,但看起来,批处理将命令解释为整行并分离出重定向部分。例如,在 bash 中,命令在>符号本身处终止。

例如echo hello >somefile.txt worldhello world放入somefile.txt.

于 2013-05-15T14:00:22.513 回答
0
@ECHO OFF
SETLOCAL
(
FOR /f "skip=5 delims=" %%i IN (rltsf.txt) DO CALL :unpad %%i
)>output.txt

FC rltsf.txt output.txt
GOTO :eof

:unpad
ECHO %*
GOTO :eof

这种方法似乎有效,但我认为它可能对行内容有点敏感。如果我们有代表性数据更容易测试......

于 2013-05-15T13:51:17.557 回答