Windows 为什么我的简单批处理脚本在第59行之后意外退出?
我创建这个批处理文件是为了执行web开发工具包的某些命令,但是,bat文件在第59行之后退出。为什么要辞职 但是,我注意到,如果我从文件中删除第59行并运行它。它很好用。唯一的问题是,我必须在bat文件完成后实际键入该行 您可以尝试通过从my GitHub下载my并将zip内容提取到您喜欢的位置来重现问题 只需导航到Windows 为什么我的简单批处理脚本在第59行之后意外退出?,windows,batch-file,Windows,Batch File,我创建这个批处理文件是为了执行web开发工具包的某些命令,但是,bat文件在第59行之后退出。为什么要辞职 但是,我注意到,如果我从文件中删除第59行并运行它。它很好用。唯一的问题是,我必须在bat文件完成后实际键入该行 您可以尝试通过从my GitHub下载my并将zip内容提取到您喜欢的位置来重现问题 只需导航到Gulp/Starter Kit目录并运行setup.bat文件 批处理文件: @echo off TITLE Starter Kit runas /noprofile /user:
Gulp/Starter Kit
目录并运行setup.bat文件
批处理文件:
@echo off
TITLE Starter Kit
runas /noprofile /user:Administrator cmd
goto :checkNodeVersion
:checkNodeVersion
cls
echo Current NodeJS version:
call npm -v
timeout 5
if errorlevel 1 goto :installNode
goto :updateNode
:installNode
cls
echo Installing NodeJS:
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://nodejs.org/dist/v5.3.0/node-v5.3.0-x64.msi', 'node-v5.3.0-x64.msi')"
echo downloading file, node-v5.3.0-x64.msi, from https://nodejs.org/dist/v5.3.0/node-v5.3.0-x64.msi....
set "fileName=node-v5.3.0-x64.msi"
%fileName%
echo NodeJS was successfully installed.
timeout 5
goto :updateNode
:updateNode
cls
echo Updating NodeJS:
call npm cache clean -f
call npm install -g n
call n stable
cls
echo NodeJS was successfully updated to version #:
node -v
timeout 5
goto :installBower
:installBower
cls
echo Installing Bower:
call npm install -g gulp bower
echo Bower was successfully installed.
goto :installGulp
:installGulp
cls
echo Installing GulpJS:
call npm install -g gulp
echo GulpJS was successfully installed.
timeout 5
goto :installDependencies
:installDependencies
cls
echo Installing Project Dependencies:
call npm install && bower install
::Quits unexpectedly after line 59
call npm install --save-dev gulp-rucksack
call npm install --save-dev gulp-imagemin
call npm install --save imagemin-pngquant
echo Project Dependencies were successfully installed.
timeout 5
goto :primaryFunction
:primaryFunction
cls
echo Starter Kit Log:
echo NodeJS is installed.
echo GulpJS is installed.
echo Gulp Dependencies are installed.
set /p response="Would you like to continue? <y/n>"
if /i "%response%"=="y" (
cls
set "filePath=%~dp0"
cd %filePath%
gulp help
cmd /k
)
if /i "%response%"=="n" goto :exitFunction
:exitFunction
cls
echo Starter Kit is Closing
exit
@echo关闭
标题初学者工具包
runas/noprofile/user:Administrator cmd
goto:CheckNodeReversion
:checkNodeVersion
cls
回显当前节点JS版本:
呼叫npm-v
超时5
如果错误级别1转到:installNode
后藤:更新节点
:installNode
cls
echo安装节点:
powershell-Command“(新对象Net.WebClient).DownloadFile('https://nodejs.org/dist/v5.3.0/node-v5.3.0-x64.msi“,‘node-v5.3.0-x64.msi’”
echo下载文件,node-v5.3.0-x64.msi,来自https://nodejs.org/dist/v5.3.0/node-v5.3.0-x64.msi....
设置“fileName=node-v5.3.0-x64.msi”
%文件名%
已成功安装echo NodeJS。
超时5
后藤:更新节点
:updateNode
cls
回显更新节点:
调用npm缓存clean-f
调用npm安装-g n
叫n稳定
cls
echo NodeJS已成功更新为版本#:
节点-v
超时5
后藤:鲍威尔
:installBower
cls
安装凉亭:
呼叫npm安装-g gulp bower
已成功安装echo Bower。
后藤:大口喝
:一口
cls
echo安装GulpJS:
呼叫npm安装-g gulp
echo GulpJS已成功安装。
超时5
转到:安装依赖项
:installDependencies
cls
echo安装项目依赖项:
调用npm安装和bower安装
::在第59行之后意外退出
调用npm安装--保存开发人员的背包
调用npm安装--保存dev gulp imagemin
调用npm安装--保存imagemin pngquant
已成功安装echo项目依赖项。
超时5
后藤:原函数
:primary函数
cls
echo启动器套件日志:
安装了echo NodeJS。
安装了echo GulpJS。
已安装echo-Gulp依赖项。
set/p response=“是否继续?”
如果/i“%response%”=y(
cls
设置“文件路径=%~dp0”
cd%filePath%
狼吞虎咽
cmd/k
)
如果/i“%response%”==“n”转到:退出函数
:exitFunction
cls
echo启动器套件正在关闭
出口
根据以下引用,bower是一个批处理脚本(.cmd文件)
在此字段中,指定Bower可执行文件的位置
(bower.cmd或其他,具体取决于所使用的操作系统)
因此,您需要将第59行更改为如下内容:
call npm install && call bower install
没有电话,你永远不会从鲍尔回来。你在
CALL
ing是什么?另一个批处理文件?@aschipfl itsNode Package Manager
npmWhat是bower,它做什么?@Squashman-命令行实用程序或包管理器。访问该网站了解更多信息。最后一个想法是使用cmd/C npm-v
…太棒了!!谢谢你的回答!现在它变得更有意义了@尼古拉斯·达莫(NicholasAdamou)很奇怪,6小时后它变成了一个批处理文件。@Squashman我以前不知道它是这样的。很高兴知道。@NicholasAdamou你费心看文件的扩展名了吗?@Squashman with bower?不,它只是一个通过命令提示符工作的包管理器,因此它是.bat文件是有意义的。我本应该更积极主动地去看。我只是觉得这和更大的东西有关,而不仅仅是凉亭。无论如何,很高兴知道。