我需要一个批处理文件来剪切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
答案 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
了解更多信息。