TCL exec с переменной строкой arg, начинающейся со специальных символов, таких как & lt ;, > или |

Во-первых, похоже, что у вас установлены Visual Studio 2013 и 2012, установленные на вашем компьютере. Я попытался посмотреть путь, который вы предоставили, я не мог его найти. На вашем пути, похоже, вы пытаетесь использовать шаблоны MVC4. Вот мой путь:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\
Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates

Ниже описано, как я настроил шаблон шаблона для BaseController:

  1. Создать папку под названием «CodeTemplates» непосредственно в папке проекта.
  2. Перейти к следующему пути, найти папку MvcControllerWithActions, скопировать все в папку «CodeTemplates»
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\
    Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates
    
  3. Перейти к CodeTemplates -> MvcControllerWithActions в вашем проекте.
  4. Есть два файла, Controller.cs.t4 и Controller.vb.t4 в MvcControllerWithActions, если вы использовали C #, вы можете удалить Controller.vb.t4.
  5. Откройте файл Controller.cs.t4, измените имя контроллера на BaseController, как показано ниже: f3]
  6. Теперь, когда вы пытаетесь создать MVC5-контроллер с помощью «добавить новый элемент эшафота», он будет использовать шаблон, который вы настроили.

Надеюсь, что это поможет.

1
задан Will 5 March 2019 в 19:06
поделиться

2 ответа

Один из способов обойти это (немного украсть у @jerry) - записать команду во временный файл и запустить ее с помощью оболочки

   set f [file tempfile fn "/tmp/cmd"]
   # open $fn w # unnecessary
   puts $f $cmd
   close $f
   set shcmd "echo \"`cat $fn`\""
   exec sh -c $shcmd 
   file delete $fn
0
ответ дан Will 5 March 2019 в 19:06
поделиться

Я не очень хорошо разбираюсь в том, что вы пытаетесь сделать, но с некоторыми поисками я нашел этот пост (и так как это не совсем работало ...) и этот пост . Вместе они выглядят как следующие работы:

% exec bash -c {echo "<hi>"}
<hi>

Цитировать Колина по первой ссылке:

Exec Tcl не вызывает bash и не выполняет это преобразование само по себе. Вы можете заставить его работать, явно вызвав bash из Tcl

0
ответ дан Jerry 5 March 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: