这是我的问题(更多的是工作流程的问题,而不是实际的问题):
我目前正在学习如何使用Symfony 4,并且您可能知道,该框架通过$ php bin/console command
命令行在PHP中使用了很多命令。
这是我的问题:是否可以配置CMD窗口,所以我不必总是在命令名之前键入$ php bin/console
?
答案 0 :(得分:1)
您将需要一个批处理文件来完成您的任务
将以下代码保存在 Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim dt As New DataTable("Dt")
dt.Columns.Add("test1")
dt.Columns.Add("test2")
dt.Columns.Add("test3")
GridView1.DataSource = dt
GridView1.DataBind()
ViewState("DataSource ") = dt
End Sub
Protected Sub btnadd_Click(sender As Object, e As EventArgs) Handles btnadd.Click
Dim dt As DataTable = DirectCast(ViewState("DataSource "), DataTable)
GridView1.DataSource = dt
GridView1.DataBind()
dt.Rows.Add("Hi1", "Hi2", "Hi2")
GridView1.DataSource = dt
GridView1.DataBind()
End Sub
文件夹和其他Symfony文件所在的项目文件夹中,并将其命名为bin
SymfonyConsole.bat
然后在命令提示符下键入@echo off
:SymfonyConsolePrompt
set "SymfonyConsoleCommand="
echo,
set /p "SymfonyConsoleCommand=Symfony Console Command>"
for /F "tokens=*" %%C in ("%SymfonyConsoleCommand%") do set "SymfonyConsoleCommand=%%C"
if defined SymfonyConsoleCommand (
php bin/console %SymfonyConsoleCommand%
) else (
choice /C NY /N /M "Do you want to quit Symfony Console Prompt?[YN]"
if errorlevel 2 exit /b
)
goto :SymfonyConsolePrompt
您将获得提示> SymfonyConsole
的准备,以获取Sympony控制台组件的命令。
ex:Symfony Console Command>
将自动运行Symfony Console Command>server:start 0.0.0.0:8000
,然后等待下一个Sympony控制台命令,直到您按Enter键而不输入任何内容为止,在这种情况下,您可以退出批处理文件并返回到cmd提示符。
答案 1 :(得分:0)
最简单(也是推荐的方法)是将php bin/console
加载到变量中,然后重新使用变量
我不熟悉$ php bin/console
语法,但是我认为在Windows脚本中,等效项只是php bin/console
因此您可以尝试以下操作:
SET phpconsole=php bin/console/
"%phpconsole%Command1"
"%phpconsole%Command2"
将导致以下结果:
"php bin/console/Command1"
"php bin/console/Command2"
您现有的Windows批处理文件是什么样的?
答案 2 :(得分:0)
@echo off
setlocal
:: Check 1st argument for help.
if "%~1" == "-h" goto :help
if "%~1" == "--help" goto :help
if "%~1" == "/?" goto :help
:: Check script arguments for program.
set _program=%*
:: If not program defined, prompt for program.
if not defined _program set /p "_program=Enter the program: "
:: If the required program is not defined then exit.
if not defined _program exit /b 1
:: Set a prompt string.
set "_prompt=%_program:"='%>"
:: Show information before start of the loop.
echo Pass arguments to '%_program%' in a loop.
echo.
:begin_loop
:: Prompt for arguments.
set "_args="
set /p "_args=%_prompt% "
:: Restart loop if no args or exit if requested.
if not defined _args goto :begin_loop
if /i "%_args:"='%" == "exit" exit /b 0
:: Clear local variables and then run the program with arguments.
setlocal
set "_prompt=" & set "_program=" & set "_args=" & %_program% %_args%
endlocal
echo.
goto :begin_loop
:help
:: Help information.
echo Pass arguments to a select program in a loop.
echo If script arguments are passed, then that will be the program.
echo If a program is not defined, then a prompt will ask for a program.
echo Variables _prompt, _program and _args are cleared with each execution.
这与我在my website上发布的内容相同,只是一行 已删除,它为conemu设置了ANSI转义的提示。对此表示怀疑 如果发布,站点将保持控制字符完整。
我将其称为loop.cmd并将其放置在 PATH 中(请参见)。它是为任何 命令如此普遍。
要使用:
loop command
然后您将在提示符下输入命令,即
command>
现在在提示符下键入的内容将带有前缀 命令并执行。
您只需键入exit
即可结束循环。
根据您的代码使用示例:
loop php bin/console
然后在提示符下添加您的命令:
php bin/console> command
尽管我使用批处理文件,但也存在Python版本 因为它会保持自动完成等。
注意:
我提到的 PATH 是脚本可以在系统上找到文件的位置。
PATH
环境变量或当前变量中的路径
工作目录。
建议创建文件夹路径,即%SystemDrive%\bin
并添加
到您的PATH
适合的系统变量PATH
脚本可以存储。或者,您可以将脚本添加到
如果您不满意,请访问变量PATH
中的现有目录
将自己的目录添加到PATH
。