iT邦幫忙

0

批次檔寫法

  • 分享至 

  • xImage

想請教前輩們
我想備份資料庫但要在沒有人的時候因次我上"股溝大神"找了
關於讓資料庫停止中複製又啟動的語法

但我不想讓它問我要y/n
有參數是直接"y"的嗎


CODE

CLS
@ECHO off
ECHO.
ECHO ------------每日備份 MySQL 資料庫------------
ECHO.
ECHO 1. 正在停止 MySQL 服務....
start /wait net stop MSSQLSERVER
ECHO.
ECHO 2. 已停止 MySQL 服務,正在備份資料庫....
start /wait rar a -r -agYYYYMMDD backup D:\Server\MySQL\data\*.*
start /wait xcopy *.rar e:\
ECHO.
ECHO.3. 備份完畢,正在重新啟動 MySQL 服務....
start /wait net start MSSQLSERVER
ECHO.
ECHO 4. 重新啟動 MySQL 服務完畢。
CLS
ECHO ------------每日備份 MySQL 資料庫------------
ECHO.
ECHO.
ECHO.
ECHO. 已備份完畢。
ECHO.
ECHO.
ECHO.
pause

怕圖片看不清楚

我把語法也貼上!!!!
請教各位前輩們!!!!

看更多先前的討論...收起先前的討論...
oo324mnrn提到:
start /wait net stop MSSQLSERVER
ECHO.
ECHO 2. 已停止 MySQL 服務,正在備份資料庫....
start /wait rar a -r -agYYYYMMDD backup D:\Server\MySQL\data\*.*


不對啊
你停的服務 和你複製的項目根本不合哩
重點擺錯瞜
bluehsk大大的最佳解答雖然能夠解決YES的問題
但你的核心問題不光是停用、啟用服務 而是根本停錯服務
你要停用的應該是這個才對啊
bluehsk iT邦新手 3 級 ‧ 2012-03-09 13:14:22 檢舉
liurambo0911大大
樓主說的mysql,我猜應該是他自已命名的「我的sql」,而不是真的是用mysql資料庫
而樓主備份的地方d:\server\mysql\,應該也是樓主自已建的資料夾
(由樓主描述字義上猜測得來)
oo324mnrn iT邦新手 5 級 ‧ 2012-03-09 14:52:48 檢舉
liurambo0911大大
我的服務怎麼沒有MYSQL(ORZ摸索中)

bluehsk大大厲害,那個資料夾只是隨便新增的mdf檔存放的地方
bluehsk提到:
MySQL

打成MYSQL瞜 不然就mysql
你看看我貼的圖 官方都是MySQL哩
我比較好奇的是
MS SQL Server 的備份
已經有很多「內建」的方法可以做:

1. Jobs:可自動化 (撰寫代理程式)
2. 資料庫維護計劃:可自動化 (圖型介面操作設定)
3. 手動操作 SQL Server Backup:針對當下有備份需求的資料庫

為什麼還要弄出另一個不相干的批次檔來?
oo324mnrn iT邦新手 5 級 ‧ 2012-03-14 14:26:42 檢舉
我只是測試一下如果要用批次檔是否成功
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
bluehsk
iT邦新手 3 級 ‧ 2012-03-09 10:19:41
最佳解答

[quote=oo324mnrn]CODE

CLS
@ECHO off
ECHO.
ECHO ------------每日備份 MySQL 資料庫------------
ECHO.
ECHO 1. 正在停止 MySQL 服務....
start /wait net stop MSSQLSERVER
ECHO...(恕刪)

start /wait net stop MSSQLSERVER
↑(重點在這行,只要在最後加上/y 即可,修改完後應為[net stop MSSQLSERVER /y])

oo324mnrn iT邦新手 5 級 ‧ 2012-03-09 10:55:54 檢舉

耶耶!!!成功了

謝謝

2
vino1
iT邦大師 1 級 ‧ 2012-03-08 22:52:15

要不要把 start /wait net stop MSSQLSERVER
改成 net stop MSSQLSERVER 就好?!

oo324mnrn iT邦新手 5 級 ‧ 2012-03-09 10:54:59 檢舉

我改了!!!還是不行

謝謝大大的指點

2
wiseguy
iT邦超人 1 級 ‧ 2012-03-08 23:28:28

樓主是不是搞錯什麼了?
你停掉 微軟SQL server 的 service,然後備份 MySQL?(備份目錄是 MySQL 沒錯)
MySQL 的 service 應該就叫 MySQL 吧?
你到底要備份 微軟SQL server 還是 MySQL ?

iT邦幫忙MVPwiseguy提到:
你到底要備份 微軟SQL server 還是 MySQL ?

他指的應該是 My SQL Server
簡稱 MYSQLSERVER
冷冷冷

oo324mnrn iT邦新手 5 級 ‧ 2012-03-09 10:54:29 檢舉

不好意思前輩...
對資料庫也是不太理解

我的意思是要把"服務"裡的
SQL SERVER(MSSQLSERVER)
SQL SERVER Agent (MSSQLSERVER)
兩個關掉

才能方便我做複製的動作

oo324mnrn iT邦新手 5 級 ‧ 2012-03-09 10:57:21 檢舉

oo324mnrn提到:
對資料庫也是不太理解

*我.....

2
jaguliu
iT邦新手 5 級 ‧ 2012-03-09 09:53:46

有的,很簡單,只要在你批次檔執行的目錄下
(比如說你在Windows下的捷徑裡的「開始位置」)
建一個純文字檔,比如說Say-Yes.txt
裡面的內容就輸入一個「y」再按Enter(一定要!不然系統還是會等你按Enter)
在你的批次檔中會出現詢問Yes or No的那一行最後加入「<Say-yes.txt」
就會自動將「y」回應給系統。
同理,如果要回答No的話,把「y」改成「n」即可。
還有,一般來說大小寫是無關的,除非是有怕誤動作而要求一定要大寫的回應,這樣的話就把Say-yes.txt的內容改成大寫即可,希望對你有幫助(^_^)

oo324mnrn iT邦新手 5 級 ‧ 2012-03-09 10:55:26 檢舉

這也是個方法
我來測試一下!!!!!!!

我要發表回答

立即登入回答