在文本文件中剪切第一行,然后粘贴到另一个文件中

时间:2019-02-26 19:18:18

标签: batch-file text-files

我需要一个批处理文件来剪切file1.txt的第一行,保存该文件,将该行粘贴到file2.txt并保存第二个文件;特别是我希望它覆盖第二个文件,这是一个示例

File1.txt

line 1
line 2
line 3
line 4

File2.txt为空。我想将第一行转移到第二个文件,以便

File1.txt

line 2
line 3
line 4

File2.txt将是:

line 1

保存两个文件。当我再次运行批处理文件时,我希望它覆盖第二个文件,以便:

File1.txt

line 3
line 4

File2.txt将是:

line 2

1 个答案:

答案 0 :(得分:1)

这可以通过以下方式实现:

@echo off

set "file1=file1.txt"
set "file2=file2.txt"

goto :first_loop

:first_loop
for /F "delims= eol=" %%A IN ('type "%file1%"') do (
    (echo %%A)>"%file2%"
    goto :second_loop
)

:second_loop
for /F "skip=1 delims= eol=" %%A IN ('type "%file1%" ^& del "%file1%"') do (echo %%A)>>"%file1%"
if not exist "%file1%" (type nul >%file1%)
goto :completion

:completion
echo Completed!
pause>nul
exit /b

实际上,在第一个循环中,您echo将第一行for /?移至第二个文件,而在第二个循环中,实际上删除了第一个文件的第一行。

请参阅:

  • type /?
  • del /?
  • echo /?
  • goto /?
  • groupby

了解更多信息。