Linux到Windows的命令|使用SpringBoot进行角度设置

时间:2018-11-20 10:01:44

标签: angular spring-boot batch-file cmd sh

我正在阅读本教程:https://github.com/dsyer/spring-boot-angular

使用Spring Boot设置角度项目。本教程使用了某些脚本来自动化构建过程。如下所示:

1。

$ cat > npm
#!/bin/sh
cd $(dirname $0)
PATH="$PWD/node/":$PATH
node "node/node_modules/npm/bin/npm-cli.js" "$@"
$ chmod +x npm

2。

$ cat > ng
#!/bin/sh
cd $(dirname $0)
PATH="$PWD/node/":"$PWD":$PATH
node_modules/@angular/cli/bin/ng "$@"
$ chmod +x ng
$ ./ng --version

3。

$ cat client/.gitignore >> .gitignore
$ rm -rf client/node* client/src/favicon.ico client/.gitignore client/.git
$ sed -i '/node_/anode/' .gitignore
$ cp -rf client/* .
$ cp client/.??* .
$ rm -rf client
$ sed -i -e 's,dist/client,target/classes/static,' angular.json

我想这些是sh脚本,可以在linux环境中运行。如何将这些脚本转换为Windows环境。或者,谁能指出我的Windows版本。

1 个答案:

答案 0 :(得分:0)

使用busybox-w32之类的东西并以最小的修改直接运行脚本可能是个好主意。

我省略了重复的命令。请尝试弄清一切工作原理,而不仅仅是复制粘贴我的提交内容-可能是我弄乱了某些东西。

除此之外,这里是:

Unix:

$ cat > npm

Windows:

copy CON npm.bat

(使用ENTERCTRL+ZENTER输入结束文件)

尽管这样做可能更简单

notepad npm.bat

因为它总是随操作系统一起安装。

Unix:

#!/bin/sh

Windows:

不支持shebangs。 您需要使用.bat.cmd扩展名来命名脚本。 此行需要省略。 注释以rem

开头

Unix:

cd $(dirname $0)

Windows:

cd %~dp0

运行call /?了解其含义的详细信息。

Unix:

PATH="$PWD/node/":$PATH

Windows:

set path=%cd%\node;%path%

请参见set /?path /?

Unix:

node "node/node_modules/npm/bin/npm-cli.js" "$@"

Windows:

node "node\node_modules\npm\bin\npm-cli.js" %*

如果您做过ENTER,则需要在此处按Ctrl+ZENTERcopy CON

Unix:

$ chmod +x npm

Windows:

无需采取任何措施。在Windows中,默认情况下,所有以.bat.cmd结尾的文件都是可执行的,人们几乎很少有访问权限。

Unix:

$ ./ng --version

Windows:

ng --version

Windows默认情况下从当前目录执行文件

Unix:

$ cat client/.gitignore >> .gitignore

Windows:

type client\.gitignore >> .gitignore

Unix:

$ rm -rf client/node* client/src/favicon.ico client/.gitignore client/.git

Windows:

rd /s /q "client\node*"
del /y "clientsrc\favicon.ico"
del /y "client\.gitignore"
del /y "client\.git"

Windows不支持使用一个命令删除或复制多个文件

Unix:

$ sed -i '/node_/anode/' .gitignore

Windows:

您可以下载并安装sed for windows或打开notepad并使用其菜单中的Replace命令。它不支持正则表达式。

Unix:

$ cp -rf client/* .

Windows:

xcopy /S /E /I /Y "client\*" .\

您还可以使用robocopy,请参见robocopy /?xcopy /?

Unix:

$ cp client/.??* .

Windows:

copy /y "client\.*" .

我不确定他们将尝试完成什么操作,但是如果此操作仅复制具有两个或多个字符的文件,则在Windows中可能会有些棘手,因为??被解释为{{1} }由命令处理器处理。您将需要一个*循环,然后检查for if是否为空或类似的内容。根据上下文完全重做此命令可能会更容易。请参见%variable:~3:1%for /?if /?和/或this site