Подавить вывод MKLINK / J?

466
Justin Thomas

Я ищу пакетный файл, где он подавляет mklinkвывод. Я не хочу, чтобы пользователь видел путь.

Я смог сделать это с > nulи robocopy.

mklink /J "newpath" "originalpath" 

Вот как выглядит пример кода.

У меня в основном есть интерфейс, где пользователи могут выполнять командные файлы, но они не должны видеть исходный код. Они должны просто иметь возможность щелкнуть значок и выполнить файл. Он создает более 40 символических ссылок одним нажатием на иконку, и, если некоторые ссылки существуют, он будет отображать предупреждение

Невозможно создать файл, если этот файл уже существует.

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

1
Как насчет `2> nul`? PetSerAl 7 лет назад 3
В случае, если то, что я предоставил, было полезным, я хотел бы напомнить вам о [Принятие ответа] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) Pimp Juice IT 7 лет назад 0

1 ответ на вопрос

1
Pimp Juice IT

Я ищу пакетный файл, где он подавляет вывод mlink, я не хочу, чтобы пользователь видел путь. Есть ли способ подавить это предупреждение и скрыть предупреждения?

Абсолютно есть несколько простых вещей, которые помогут (используйте все или любую комбинацию, если необходимо):

  1. Используйте ECHO, убедившись, что @ECHO OFFустановлено как минимум в строке над MKLinkкомандой
  2. Используйте EXIST, гарантируя, что команда IF NOT EXIST "newpath"предшествует mklink /J "newpath" "originalpath"этой же строке.
  3. Используйте Redirection правильно, чтобы перенаправить mklink /J "newpath" "originalpath"команду так > NULже, как вы использовали в прошлом.
  4. Используйте CLS прямо в следующей строке после mklink /J "newpath" "originalpath" > NULкоманды, чтобы очистить экран и все выходные данные команды, выполненные ранее.
  5. Используйте EXIT прямо в следующей строке после mklink /J "newpath" "originalpath" > NULкоманды (или после CLS).

По сути, это говорит ему показывать только вывод команды на экране, запускать MKLinkкоманду только в том случае, если "newpath"она еще не существует, если "newpath"она не существует, а затем перенаправить MKLinkкоманду, nulкоторая гарантирует, что ее нет на экране, очистить экран после MKLinkкоманда (независимо от того, запущена она или нет), а затем немедленно выйдите и закройте окно командной строки.

Пакетный скрипт

@ECHO OFF IF NOT EXIST "newpath" MKLINK /J "newpath" "originalpath" > NUL CLS EXIT 

Дополнительные ресурсы