Команда создания файла в пакетных файлах (* .bat) - PullRequest
2 голосов
/ 12 января 2010

Я хочу создать файл с именем «new text document.txt» в папке %tv%, используя пакетный файл (*.bat). Это мой командный файл:

set tv=D:\prog\arpack96\ARPACK\SRC
cd "%tv%"
@CON >> "new text document.txt"
set tv=

Хотя я действительно могу создать файл в %tv%, но при запуске вышеуказанного командного файла я получу сообщение об ошибке, говорящее

'' не распознан как внутренний или внешняя команда, работающая программа или пакетный файл.

Есть ли способ избавиться от этого сообщения об ошибке? Или я создаю файл, используя неправильную команду?

Ответы [ 4 ]

6 голосов
/ 12 января 2010

Чтобы получить действительно пустой файл без необходимости взаимодействия с пользователем, вы можете использовать команду set /p с небольшим обманом:

set tv=c:\documents and settings\administrator
cd "%tv%"
<nul >"new text document.txt" (set /p tv=)

set /p запрашивает ввод данных в переменной tv после вывода приглашения после символа =.

Поскольку подсказка пуста, подсказка не отображается. Поскольку вы читаете из nul, он не ждет взаимодействия с пользователем. И вы можете хранить пустую строку прямо в tv, что устраняет необходимость ее отмены.


На самом деле, после еще нескольких размышлений, есть более простой способ. Я использовал этот трюк set /p в прошлом, так как я знаю, что это эхо текста без добавления новой строки (отлично подходит для индикаторов в консоли). Но если все, что вам нужно, это пустой файл, вы можете сойти с рук:

copy /y nul "new text document.txt"

copy просто копирует содержимое устройства nul (фактически пустой файл) в новое имя файла. /y должен гарантировать, что он будет перезаписан без беспокойства пользователя.

4 голосов
/ 05 декабря 2012

Создать пустой файл из файла * .bat - у меня это сработало.

echo off > test.txt
3 голосов
/ 12 января 2010
type nul > file.txt

file.txt должен быть создан пустым

или ответ Пакдиабло

0 голосов
/ 12 января 2010

con - это специализированное имя файла Windows, и оно не должно использоваться.

copy con >> filename.txt

попросит вас ввести текст, и вы можете сохранить текст, нажав Ctrl Z.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...