Как добавить содержимое одного текстового файла (file1.txt) в другой (file2.txt) и удалить содержимое первого файла, но при этом сохранить его пустым, используя инструменты командной строки?

Есть ли способ сделать это, или я должен прибегнуть к другим средствам?

В идеале было бы лучше, если бы это можно было сделать с помощью инструментов командной строки на платформе Windows XP.

4 ответа4

2
C:\>type file1.txt >>file2.txt <ENTER>
C:\>echo.>file1.txt  <ENTER>

Единственное, что file1.txt содержит новую строку и не является 0 байтами. Вы можете заменить эту вторую команду, т.е. echo.>file1.txt на type nul>file1.txt тогда file1.txt будет действительно пустым, 0 байт.

1

Чтобы добавить его, вы можете сделать так, как предложено, если это обычный текст:

C:\> echo.>> file2.txt     :: If you want to add a blank line between them
C:\> type file1.txt >> file2.txt

Или, если он является двоичным и / или содержит какие - либо нетекстовые символы (например, Unicode, UTF-8 и т.д.):

C:\> copy /b file1.txt + file2.txt file.tmp
C:\> del file1.txt
C:\> ren file.tmp file1.txt

Теперь надежный способ (в DOS и Windows не менее 7) обнулить второй файл:

C:\> ren > file2.txt
or
C:\> ren > file2.txt 2> nul   :: to hide the error message (Windows only)
0

Это должно работать:

type file1.txt >> file2.txt && echo. > 1.txt
-1

Как насчет просто использовать Unixutils для Windows.

А затем делайте дополнения / прикосновения так же, как вы работаете в Unix.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .