
[已解決]批處理調用批處理配置mysql5522配置mysql的批處理位置:D:testmysql-5.5.20-win32service install.batD:testmysql-5.5.20-win32 路徑下運行service install.bat,沒有問題但是當從:D:test測試.bat 調用D:testmysql-5.5.20-win32service install.bat時,就不行提示:測試.bat代碼如下:
service install.bat代碼如下:nclick="copycode($('code0'));">復制代碼
- start /wait call %rar%mysql-5.5.20-win32service install.bat
- pause
nclick="copycode($('code1'));">復制代碼
- @echo off
- rem @echo off的作用是關閉回顯功能
- rem 找到當前路徑
- rem 將temp.txt文件中內容拷貝到temp.bat文件中
- rem temp.txt文件中的內容是“set PathTemp=”
- rem 特別注意:“=”后面不能加回車
- copy temp.txt temp.bat>nul
- rem 將路徑添加到temp.bat文件中
- cd>>temp.bat
- rem 執行temp.bat文件中命令
- rem temp.bat文件執行后,路徑已經保存在PathTemp變量中
- call temp.bat
- rem 刪除temp.bat文件
- del temp.bat
- rem 設置my-huge.ini的標記位
- set tag=[mysqld]
- rem 設置添加到my.ini文件中的數據庫路徑和數據路徑
- rem set datadir=datadir=%PathTemp%data的意思是:
- rem 將字符串“datadir=”、變量PathTemp對應的字符串以及字符串“data”賦值給datadir變量
- set basedir=basedir=%PathTemp%
- set basedir=%basedir:=/%
- set datadir=datadir=%PathTemp%
- set datadir=%datadir:=/%/data
- rem 設置運行環境變量homedir
- set homedir=%PathTemp%bin
- rem 設置變量延遲
- rem 注意:使用變量延遲后,相關變量用!!包圍,這樣程序才能正確識別
- setlocal enabledelayedexpansion
- rem 循環查找my-huge.ini文件中的內容
- for /f tokens=* %%i in (my-huge.ini) do (
- rem 將從my-huge.ini文件中讀到的字符串,賦值給變量p
- set p=%%i
- rem 如果變量p的內容和my-huge.ini的標記位相同
- rem 將變量p的內容寫入my.ini文件中,同時在其后面加入兩行內容:
- rem basedir的內容和datadir的內容;
- rem 如果不同,只將變量p的內容寫入my.ini文件中
- if !p!== %tag% (
- echo !p!>>my.ini
- echo !basedir!>>my.ini
- echo !datadir!>>my.ini
- )
- if not !p!== %tag% echo !p!>>my.ini
- )
- rem 設置安裝mysql服務的命令
- set installcmd=.binmysqld.exe -install
- rem 調用安裝命令
- call !installcmd!
- rem 啟動mysql服務
- net start mysql
- rem 調用update.sql文件中的sql語句,將mysql的遠程訪問方式打開,以備遠程訪問服務器;
- rem 同時,將mysql的密碼更改,本批處理命令將mysql密碼更改為root
- .binmysql -u root <.update.sql
- rem 重啟mysql服務
- net stop mysql
- net start mysql
- start /wait call createDatabase.bat
- exit

