我有一个批处理文件,通过打开一些“git bash”shell窗口来设置我的环境。除了一个烦人的功能之外,这完全有效,如果按Ctrl C(或发送任何其他Term信号),整个bash窗口将关闭。
我希望窗口的行为就像它已经正常打开一样,所以当它收到一个术语信号时,它会回到bash提示符。
以下是我的setup.bat文件的当前内容:
C:
cd \project\
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i -l -c "source ali.sh && mvn spring-boot:run"
cd \project2\
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
请注意,第一个启动命令运行maven,当我想重新启动命令时(按Ctrl + C),它会关闭整个窗口。 第二个启动命令在该目录中创建一个新的bash窗口,即使使用Ctrl + C也可以像普通的bash窗口一样工作,但是我希望它在开始时运行命令。
这可能吗? 非常感谢您的帮助
答案 0 :(得分:6)
这样的事可能适合你:
[HttpGet]
public ActionResult Edit(int ID)
{
EmployeeDBEntities o = new EmployeeDBEntities();
Employee e = new Employee();
e = o.Employees.Single(x => x.EMP_ID == ID);
ViewBag.Dept = o.uspDeptCbo().Select(x => new SelectListItem { Value = x.DEPT_ID.ToString() , Text=x.DEPARTMENT });
return View(e);
}
诀窍是将命令包装在:
中<div class="editor-field">
@Html.DropDownList("Dept",string.Empty)
@Html.ValidationMessageFor(model => model.DEPT_ID)
</div>
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnT = (Button) findViewById(R.id.btnT);
btnF = (Button) findViewById(R.id.btnF);
tv=(TextView)findViewById(R.id.textView);
yazdir(R.array.metin1,R.array.secim1,0);
//first part
btnT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yazdir(R.array.metin2,R.array.secim2,0);
}
});
btnF.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yazdir(R.array.metin2,R.array.secim2,1);
}
});
//second part
btnT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yazdir(R.array.metin3,R.array.secim3,0);
}
});
btnF.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yazdir(R.array.metin3,R.array.secim3,1);
}
});
}
private Handler mHandler = new Handler();
private Runnable characterAdder = new Runnable() {
@Override
public void run() {
tv.setText(mText.subSequence(0, mIndex++));
if(mIndex <= mText.length()) {
mHandler.postDelayed(characterAdder, 20);
}
else {
btnT.setVisibility(View.VISIBLE);
btnF.setVisibility(View.VISIBLE);
}
}
};
public void yazdir(int metinGirisi,int secimGirisi,int metinIndex) {
// Yazı
text=getResources().getStringArray(metinGirisi);
mText = text[metinIndex];
mIndex = 0;
tv.setText("");
mHandler.removeCallbacks(characterAdder);
mHandler.postDelayed(characterAdder, 20);
// Buton
secim=getResources().getStringArray(secimGirisi);
btnT.setText(secim[0]);
btnF.setText(secim[1]);
btnF.setVisibility(View.INVISIBLE);
btnT.setVisibility(View.INVISIBLE);
}
是你的shell,可能是C:
cd \project\
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i -l -c "sh -c 'source ali.sh && mvn spring-boot:run; exec sh'"
。
您实际上可能只能使用:sh -c '...; exec sh'
为每个命令添加后缀,例如:
sh