我正在阅读本教程: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版本。
答案 0 :(得分:0)
使用busybox-w32
之类的东西并以最小的修改直接运行脚本可能是个好主意。
我省略了重复的命令。请尝试弄清一切工作原理,而不仅仅是复制粘贴我的提交内容-可能是我弄乱了某些东西。
除此之外,这里是:
Unix:
$ cat > npm
Windows:
copy CON npm.bat
(使用ENTER
,CTRL+Z
,ENTER
输入结束文件)
尽管这样做可能更简单
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+Z
,ENTER
,copy 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