Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP命令行脚本重命名文件夹而不将当前文件夹名称作为参数输入?_Php_Bash_Shell_Command Line Interface - Fatal编程技术网

PHP命令行脚本重命名文件夹而不将当前文件夹名称作为参数输入?

PHP命令行脚本重命名文件夹而不将当前文件夹名称作为参数输入?,php,bash,shell,command-line-interface,Php,Bash,Shell,Command Line Interface,我现在想知道这是否可能,但我想拥有以下功能: 用户呼叫 php脚本名--setAppName[新名称] 在命令行上,因此会重命名目录 首先,文件夹的默认名称为“App name”。我显然不想硬编码,因为一旦更改,我希望保留脚本的功能 那么,有没有一种方法可以让我不用求助于 php脚本名--setAppName[oldFolderName][NewFolderName] 我之所以使用PHP而不是bash,是因为我不想让用户将我的脚本添加到他们的路径中以轻松运行它们。如果我缺少一个解决方案,它将涉及

我现在想知道这是否可能,但我想拥有以下功能:

用户呼叫

php脚本名--setAppName[新名称]

在命令行上,因此会重命名目录

首先,文件夹的默认名称为“App name”。我显然不想硬编码,因为一旦更改,我希望保留脚本的功能

那么,有没有一种方法可以让我不用求助于

php脚本名--setAppName[oldFolderName][NewFolderName]

我之所以使用PHP而不是bash,是因为我不想让用户将我的脚本添加到他们的路径中以轻松运行它们。如果我缺少一个解决方案,它将涉及bash脚本,而不要求我也洗耳恭听

快速工作脚本(使用第一个默认文件夹名):

#/usr/bin/env-php

如果您的应用程序具有可用于将其与其他文件区分开来的内容(可能是顶部带有唯一注释的autoloader脚本),您可以让脚本递归扫描每个目录,直到找到该文件,然后对包含该文件的目录执行操作。如果当前应用程序名称无法令人满意地确定(例如,通过窥探当前目录的内容)显然,您必须将其记录在某个地方(例如,在名称固定的文件中)。因此,最好的方法可能是使用config.php文件并在其中设置名称,该名称将在每次运行此脚本时更改,并有助于确定文件夹名称?@KMountford对。在文件夹中放置一个名为“appname.txt”的文件。将该文件的内容设置为CURRENTFOLDERNAME,然后在重命名为“M”的文件夹中对其进行编辑y新文件夹名称“为什么不使用Bash并将脚本移动到
/usr/local/bin
?所有用户无需进一步操作即可使用它。
#!/usr/bin/env php

<?php

$app_name = 'App\ Name/';

if ($argc < 3) {
    print "Usage: php boiler --rename [new app name]";
    exit();
}

$new_app_name = $argv[2];

$command = "mv '".$app_name."' '".$new_app_name."'";

exec($command);

echo "App folder renamed to ". $new_app_name;
exit;