我有一个shell脚本(.sh),我使用 sed 命令替换文件中的最后一个匹配字符(我已经在下面放置了命令)。
如何在不添加任何软件包/插件的情况下替换命令以在批处理文件(.bat)中获取相同的功能(在Windows 7及更高版本中兼容)?
if ($this->request->is('json')) {
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'authenticate' => [
'Basic' => [
'fields' => ['username' => 'email', 'password' => 'password'],
'contain' => ['Districts']
]
]
]);
} else {
$this->loadComponent('Auth', [
'authorize' => ['Controller'],
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password'],
'contain' => ['Districts']
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'login'
],
'logoutRedirect' => [
'controller' => 'Users',
'action' => 'login'
]
]);
}
答案 0 :(得分:2)
Windows批处理脚本没有任何本地工具可以方便地执行与sed类似的任何操作。
您可以将PowerShell与简单脚本一起使用,或者将CSCRIPT与小型自定义VBS或JScript脚本一起使用。
我会使用JREPL.BAT - a regular expression text processing utility。它是纯脚本(混合批处理/ JScript),可以在XP以后的任何Windows机器上本机运行。它不需要任何非本机exe或com文件。
可以从命令行使用jrepl /?
或jrepl /??
获取完整文档以获取分页帮助。
您的简单任务可以由JREPL使用:
执行call jrepl "," ";" /inc -1 /f abc.java /o -
答案 1 :(得分:-2)
Windows中没有sed
,没有任何插件或插件。如果需要使用sed,可以安装SED for Windows。