2015-07-18 2 views
1

Как новый пользователь evernote (в Windows), я считаю, что невозможно установить заголовок импортированного файла txt в качестве имени файла. Существуют ли какие-либо простые коды, которые могут сканировать весь файл txt в папке и вставлять имя файла txt (без .txt) вместе с новой строкой? (Это означает, что строка 1 исходного файла перемещается в строку 3). Заранее благодарю.Скопировать имя файла txt в первую строку

ответ

2

Вот пакетный код для выполнения этой задачи:

@echo off 
for %%I in (*.txt) do (
    echo %%~nI>"%TEMP%\FileName.tmp" 
    echo/>>"%TEMP%\FileName.tmp" 
    copy /B "%TEMP%\FileName.tmp" + "%%~I" "%%~I.tmp">nul 
    del "%%~I" 
    ren "%%~I.tmp" "%%~nxI" 
) 
del "%TEMP%\FileName.tmp" 2>nul 

Для каждого файла с расширением TXT в текущем рабочем каталоге имя текстового файла без пути и расширения файла записывается во временный файл вместе с пустая строка в каталоге для временных файлов.

Следующее содержимое этого временного файла и текущего текстового файла копируется вместе как поток двоичных данных в новый файл в текущем каталоге с тем же именем, что и текстовый файл, но с .tmp, добавленным в качестве нового расширения. Параметр /B необходим, чтобы избежать этой команды копия добавляет ^Z (значение шестнадцатеричного кода 1A).

Следующий исходный текстовый файл удален, а файл .txt.tmp с именем файла теперь вставлен в первую строку, а пустая строка - второй.

И наконец, временный файл удаляется в каталоге для временных файлов.

Для получения более подробной информации об используемых командах и какие %%~I, %%~nI и %%~nxI значат открыть окно командной строки, выполните там следующие команды и читать все страницы помощи, отображенные в окне командной строки для каждой команды.

  • copy /?
  • del /?
  • for /?
  • ren /?

И прочитал дополнительно статью Microsoft Using command redirection operators для объяснения >, >> и 2>nul.

+0

Спасибо! Он работает! Еще один вопрос: можно ли отменить этот процесс? –

+0

В переполнении стека тема должна содержать только один вопрос. Но да, можно удалить первые 2 строки текстового файла с помощью командного файла. См. «Результаты переполнения стека» для поискового запроса [\ [batch-file \] удалить первые строки] (http://stackoverflow.com/search?q=%5Bbatch-file%5D+remove+first+lines). – Mofi

+0

Еще раз спасибо! –

Смежные вопросы