是否可以在 Laravel 的控制器中运行 composer 或 git 命令?类似的东西:
class TestController extends Controller
{
//
public function shell(Request $request){
if($request->isMethod('post')){
$data['output'] = shell_exec('composer update');
// or some git commands
return view('tests.shell', $data);
} else {
return view('tests.shell');
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我按照上面显示的方式进行操作,则不会收到任何消息。我认为,问题是,这些命令必须在项目根目录中运行,而不是在子文件夹中。
是否有一个 php 函数可以运行完整的 shell 脚本而不仅仅是单个命令?
我已经测试过这个:
echo shell_exec('php ' . __DIR__ . '/../shell.php');
// shell.php is in projects root directory
Run Code Online (Sandbox Code Playgroud)
脚本被执行,但不在根目录中。
谢谢!
我有一个逗号分隔的字符串,格式如下:
host1.mydomain.net,host2.mydomain.net,host3.mydomain.net
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用批处理(不允许安装其他软件或使用 powershell)在每个主机名前加上“http://”和“:8080”,然后将它们串在一起。
http://host1.mydomain.net:8080,http://host2.mydomain.net:8080,http://host3.mydomain.net:8080
Run Code Online (Sandbox Code Playgroud)
下面只是我尝试过的一种方法,拆分字符串然后创建一个新的,但是虽然我能够提取每个主机名,但我似乎无法连接它们。还考虑将“http...”添加到字符串的开头,将“:8080”添加到末尾,并将每个逗号替换为“:8080,http://”,但我无法使添加工作. 如果这是 Linux 和 sed,它会非常简单,但是批处理操作对我来说一直很困难。
@echo off
set themes=Host1,Host2,Host3
set NEWSTR1=
echo list = "%themes%"
for %%a in ("%themes:,=" "%") do (
echo hostname is %%~a
if NOT DEFINED NEWSTR1 (
set NEWSTR1=remote://%%~a:4447
echo.%NEWSTR1%
) ELSE (
set NEWSTR1=%NEWSTR1%,remote://"%%a":4447
echo In the else %NEWSTR1% )
)
echo %NEWSTR1%
Run Code Online (Sandbox Code Playgroud) 我需要一个命令来获取文件夹中不同的扩展文件,其中包含每个扩展的出现次数。
那么我该怎么做呢?
我正在尝试运行一个运行 PostgreSQL 的 Dockerfile,然后向其中添加一些表。
这是我的 Dockerfile:
FROM postgres:9.6
MAINTAINER agomez@ikerlan.es
USER postgres
ADD ./backup.sql /backup.sql
ADD ./deploy/import_database.sh /import_database.sh
USER root
RUN chmod +x /import_database.sh
USER postgres
ENTRYPOINT ./docker-entrypoint.sh postgres
CMD ./import_database.sh
Run Code Online (Sandbox Code Playgroud)
入口点没有完成,因为它运行 postgres 服务器。例如,如何在运行 ENTRYPOINT 20 秒后运行 CMD,但没有完成 ENTRYPOINT?
是否可以?
我正在运行一个具有大运行时间和大输出的程序,因此为了在查看输出时进行日志记录,我tee在 windows 上使用命令cmd.exe:
./program | tee -a program.log
的program打印输出住(具有显着的时间间隙行之后线),但是tee打印仅输出程序终止之后。有什么方法可以tee与实时输出一起使用吗?
注意:该问题在 windows 上也仍然存在 powershell.exe
我在尝试将单个类文件编译为可执行文件时遇到问题。这只是一个 .cs 文件,带有一个像这样简单的 hello world
using System;
using System.Diagnostics;
using System.Linq;
using System.Linq;
namespace Q3J1G0HFP7EXE58
{
class Program
{
static void Main(string[] args)
{
Console.Title = "First Attempt";
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何从命令行将其编译为 .exe 文件?或者我需要执行什么过程才能将其放入 .exe 文件(全部来自命令,如 pref)。3rd 方程序是一个受欢迎的建议,我曾尝试使用 csc 方法,但它不能仅用于类文件。
它将是自动生成的代码,然后我想将其编译为与将代码写入文件的程序分开的程序。写入可执行文件被认为是一个完全自动化的过程,但编译正在成为一个问题。
我有一个caller.cmd文件,它的 DOSKEY 设置如下:
DOSKEY startnow=call powershell getscalled.ps1
Run Code Online (Sandbox Code Playgroud)
现在脚本getscalled.ps1在参数集中定义了两个开关参数,如下所示:
param(
[Parameter(Mandatory=$false,ParameterSetName='first')]
[switch]$thisIsFirst,
[Parameter(Mandatory=$false,ParameterSetName='second')]
[switch]$thisIsSecond
)
Run Code Online (Sandbox Code Playgroud)
因此,一次只能提供两个参数之一。我希望使用我设置的 DOSKEY 从命令行本身提供参数。就像是:
startnow -thisIsFirst
Run Code Online (Sandbox Code Playgroud)
有关如何实现这一目标的任何帮助?谢谢!
我收到消息“错误:“|” 当我运行以下代码时,此时批处理脚本出乎意料:
@set CheckAccount=FOR /F "tokens=3" %A IN ('net user UserName /domain^|Findstr /ic: "active"') do SET Active=%A
%CheckAccount%
| was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)
即使我更改"active"为active. 如果CheckAccount没有收到该错误消息,我似乎无法回声。
如何将 cmd 变量设置为值on或off?这是交互式 cmd.exe 会话的输出:
c:\>echo %myvar%
%myvar%
c:\>set myvar=x
c:\>echo %myvar%
x
c:\>set myvar=on
c:\>echo %myvar%
c:\>set myvar=off
c:\>echo %myvar%
Run Code Online (Sandbox Code Playgroud)
在最后一个命令之后,命令会话变得无响应,我需要手动关闭命令窗口。这些价值观on或off拥有特殊权力吗?也ON或OFF有类似的效果,所以这是不区分大小写的。
我能得到的最接近的是使用引号:
c:\>set myvar="on"
c:\>echo %myvar%
"on"
Run Code Online (Sandbox Code Playgroud)
然而,这是不可接受的,因为变量包含引号字符。
我以管理员权限运行命令提示符以在我的计算机上卸载 Ananconda,在此过程之后,我重新打开 cmd 并在我的 cmd 开头找到“系统找不到指定的路径”这一行。
我可以保证我的 cmd 之前没有这条线,我该如何解决?这是我应该注意的严重错误吗?
谢谢你。
cmd ×10
batch-file ×5
windows ×5
powershell ×2
anaconda ×1
c# ×1
class ×1
command-line ×1
compilation ×1
composer-php ×1
docker ×1
dockerfile ×1
doskey ×1
filesystems ×1
laravel-5 ×1
php ×1
postgresql ×1
shell ×1
string ×1
variables ×1