RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [討論] [求助][已解決]讀取文字檔儲存至 Batch 批次檔的環境變數   字型大小:||| 
hartmann109
青銅驢友
等級: 11等級: 11等級: 11等級: 11
哈特曼

今日心情

 . 積分: 334
 . 文章: 500
 . 收花: 2957 支
 . 送花: 3791 支
 . 比例: 1.28
 . 在線: 2283 小時
 . 瀏覽: 10840 頁
 . 註冊: 6857
 . 失蹤: 12
 . 蘿莉星
#1 : 2007-11-13 12:47 PM     只看本作者 引言回覆

最近在學BAT檔的撰寫法,有些問題想問問…

如果我創建了一個純文字文件 123.txt
想在批次檔中自動讀取它的內容,並且設為環境變數
應該如何撰寫

EX: 123.txt 內容為 C:\Games\
而我想把環境變數 %gamepath% 設成123.txt的內容~這樣

有人能教我一下嗎?

[hartmann109 在  2007-11-14 04:34 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
join
青銅驢友
等級: 11等級: 11等級: 11等級: 11


十週年紀念徽章(二級)  

 . 積分: 279
 . 文章: 344
 . 收花: 2351 支
 . 送花: 393 支
 . 比例: 0.17
 . 在線: 13269 小時
 . 瀏覽: 30131 頁
 . 註冊: 8157
 . 失蹤: 2080
 . 黑暗的水怪大陸
#2 : 2007-11-13 03:36 PM     只看本作者 引言回覆

記得是這樣子寫
ex : game.bat
-----------開始----------
@echo off
set path = c:\games
@echo on
------------結束---------



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
wugen
銀驢友〔初級〕
等級: 12等級: 12等級: 12


今日心情

 . 積分: 491
 . 文章: 1953
 . 收花: 3888 支
 . 送花: 1977 支
 . 比例: 0.51
 . 在線: 1763 小時
 . 瀏覽: 17110 頁
 . 註冊: 6849
 . 失蹤: 4212
#3 : 2007-11-13 03:48 PM     只看本作者 引言回覆

只要

set gamepath = c:\games\


PATH 是系統環境變數..



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
badcat
銀驢友〔初級〕
等級: 12等級: 12等級: 12
壞喵

 . 積分: 541
 . 精華: 3
 . 文章: 837
 . 收花: 3874 支
 . 送花: 982 支
 . 比例: 0.25
 . 在線: 3330 小時
 . 瀏覽: 62312 頁
 . 註冊: 7451
 . 失蹤: 383
#4 : 2007-11-13 05:11 PM     只看本作者 引言回覆

上面兩個例子都不對!

樓主的意思是:

123.txt 內容為 C:\Games\

類似將 set gamepath = c:\games\

但 C:\Games\ 字串得從 123.txt 取出,把 123.txt 的內容 "C:\Games\" 設定成環境變數 %gamepath% 的數值,而不是像上面的命令直接設定。

一般 Batch 批次檔內沒有這種命令,記得要用這種方法,得另外找「命令列工具」程式。
得找「從檔案中設定環境變數」的程式,大概類似 像這樣的程式。(下面的隨便舉例,非真實例子)
Ex: GetFileEnvSet.exe /S: gamepath /F:"123.txt"

這樣各位客倌看的懂嗎?

[badcat 在  2007-11-13 07:55 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
hartmann109
青銅驢友
等級: 11等級: 11等級: 11等級: 11
哈特曼

今日心情

 . 積分: 334
 . 文章: 500
 . 收花: 2957 支
 . 送花: 3791 支
 . 比例: 1.28
 . 在線: 2283 小時
 . 瀏覽: 10840 頁
 . 註冊: 6857
 . 失蹤: 12
 . 蘿莉星
#5 : 2007-11-13 08:06 PM     只看本作者 引言回覆

badcat兄臺說的是
看來要用第三方程式輔助才可以了

因為123.txt裡的內容可能會改變(會機動調整)
所以遊戲的路徑也會改變
因此我才需要一個批次檔可以讓我藉由修改txt裡的路徑,再重新存成變數…
然後再套用其他程式(例如Y.A.S.U)這樣~

順便請問一下,badcat兄可以幫我找找這種程式嗎

[hartmann109 在  2007-11-13 08:08 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
icon
鐵驢友〔初級〕
等級: 4


 . 積分: 34
 . 文章: 115
 . 收花: 193 支
 . 送花: 3 支
 . 比例: 0.02
 . 在線: 339 小時
 . 瀏覽: 8641 頁
 . 註冊: 7451
 . 失蹤: 3193
#6 : 2007-11-13 10:33 PM     只看本作者 引言回覆

在windows中
欲使用環境變數
請設定windows的系統變數(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment內)
或該登入使用者名稱的使用者變數(HKEY_CURRENT_USER\Environment內)
因為批次檔所產生及設定修改的的環境境變數
其生命週期及影響範圍
只存在在該shell(command,cmd或現在windows自己稱為命令直譯器)結束前與其所呼叫的程式
另外
用批次檔套用劇本並不是大問題,配合輸出入符號即可

--
windows的環境變數
於控制台->系統->進階->環境變數中修改
欲簡化動作
用批次檔者請配合reg外部命令
用script者
請用wscript支援的script語言
如vbs...等
利用宣告registry物件進行registry的變更
使用第三方程式
在下孤陋寡聞,不知道有這方面的程式,不過寫一隻其實不困難,因為有api可以引用

[icon 在  2007-11-13 10:38 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
ROACH
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
減肥中!請勿餵食

十週年紀念徽章(四級)  

 . 積分: 15119
 . 精華: 14
 . 文章: 11767
 . 收花: 140853 支
 . 送花: 6005 支
 . 比例: 0.04
 . 在線: 8870 小時
 . 瀏覽: 85616 頁
 . 註冊: 8211
 . 失蹤: 6
 . 鄉下地方
#7 : 2007-11-13 10:39 PM     只看本作者 引言回覆


引用:
hartmann109寫到:
最近在學BAT檔的撰寫法,有些問題想問問…

如果我創建了一個純文字檔案 123.txt
想在批次檔中自動讀取它的內容,並且設為環境變數
應該如何撰寫

EX: 123.txt 內容為 C:\Games\
而我想把環境變數 %gamepath% 設成123.txt的內容~這樣

有人能教我一下嗎?



參考這個網址的作法
http://support.microsoft.com/kb/66292/zh-tw

你可以這樣作
  1.建立一文字檔內容為 set gamepath =  
   這個文字檔檔名就設定a.txt好的
  2.建立一個批次檔如下~~檔名隨便
   
    @echo off
    copy a.txt+123.txt setgp.bat /y
    setgb.bat

[ROACH 在  2007-11-13 10:41 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
hartmann109
青銅驢友
等級: 11等級: 11等級: 11等級: 11
哈特曼

今日心情

 . 積分: 334
 . 文章: 500
 . 收花: 2957 支
 . 送花: 3791 支
 . 比例: 1.28
 . 在線: 2283 小時
 . 瀏覽: 10840 頁
 . 註冊: 6857
 . 失蹤: 12
 . 蘿莉星
#8 : 2007-11-13 11:06 PM     只看本作者 引言回覆

ROACH兄你提的文章我很早就看過,不過一直看不懂
現在你一講解俺就懂了,感謝啦...



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Jonson
金驢友〔初級〕
等級: 16等級: 16等級: 16等級: 16
藏雲

今日心情

 . 積分: 1796
 . 文章: 1756
 . 收花: 15380 支
 . 送花: 6709 支
 . 比例: 0.44
 . 在線: 5890 小時
 . 瀏覽: 77021 頁
 . 註冊: 7500
 . 失蹤: 63
#9 : 2007-11-13 11:27 PM     只看本作者 引言回覆



FOR /F "usebackq" %%i in ("123.txt") do set gamepath=%%i



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
badcat
銀驢友〔初級〕
等級: 12等級: 12等級: 12
壞喵

 . 積分: 541
 . 精華: 3
 . 文章: 837
 . 收花: 3874 支
 . 送花: 982 支
 . 比例: 0.25
 . 在線: 3330 小時
 . 瀏覽: 62312 頁
 . 註冊: 7451
 . 失蹤: 383
#10 : 2007-11-14 09:16 AM     只看本作者 引言回覆

ROACH 的方法,可算是一個取巧的方法,但是有效。(取的好!)
而 Jonson 的方法,是比較正統的做法,但要注意此 FOR 指令僅能用於 Windows 2000/XP 以後才能使用。(新型的內建指令 FOR)

若考慮該批次檔要給別人,喵喵 會使用 ROACH 的方法。(沒有作業系統版本的問題)
若考慮該批次檔要自用,喵喵 會使用 Jonson 的方法。(不需寫入硬碟效率較高)


對不起,壞喵 還來不及找,兩位大人就已經有解決方案了。(看來 貓 的批次檔功力老化了!笑!)
集眾人的力量解決問題的感覺還真好!

建議 hartmann109 可將此兩種方案編入主題文中,並在標題上寫上:「已解決」讀取文字檔儲存至 Batch 批次檔的環境變數。(這標題比較能一目暸然)
以供後人瞻仰。(參考!笑!)

[badcat 在  2007-11-14 09:32 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
hartmann109
青銅驢友
等級: 11等級: 11等級: 11等級: 11
哈特曼

今日心情

 . 積分: 334
 . 文章: 500
 . 收花: 2957 支
 . 送花: 3791 支
 . 比例: 1.28
 . 在線: 2283 小時
 . 瀏覽: 10840 頁
 . 註冊: 6857
 . 失蹤: 12
 . 蘿莉星
#11 : 2007-11-14 11:44 AM     只看本作者 引言回覆


引用:
badcat建議 hartmann109 可將此兩種方案編入主題文中,並在標題上寫上:「已解決」讀取文字檔儲存至 Batch 批次檔的環境變數。(這標題比較能一目暸然)
以供後人瞻仰。(參考!笑!)[badcat 在  2007-11-14 09:32 AM 作了最後編輯]


已經弄好了,給各位鮮花奉上~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
阿達猴
銀驢友〔初級〕
等級: 12等級: 12等級: 12
阿達猴

今日心情

 . 積分: 428
 . 文章: 3209
 . 收花: 2779 支
 . 送花: 4709 支
 . 比例: 1.69
 . 在線: 2718 小時
 . 瀏覽: 14634 頁
 . 註冊: 8211
 . 失蹤: 3
 . TWed2k-DVD幫BT組
#12 : 2007-11-14 02:15 PM     只看本作者 引言回覆

我可能會考慮用vb自己寫程式讀檔案...(亂寫= =我是程式新手...)


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
badcat
銀驢友〔初級〕
等級: 12等級: 12等級: 12
壞喵

 . 積分: 541
 . 精華: 3
 . 文章: 837
 . 收花: 3874 支
 . 送花: 982 支
 . 比例: 0.25
 . 在線: 3330 小時
 . 瀏覽: 62312 頁
 . 註冊: 7451
 . 失蹤: 383
#13 : 2007-11-14 02:37 PM     只看本作者 引言回覆

抱歉,喵喵沒寫清楚,讓您誤解了!

標題上寫上 (藍色字):[求助][已解決]讀取文字檔儲存至 Batch 批次檔的環境變數

這樣標題定義比較清楚,一眼就看出是有「關於 文字檔 匯入 批次檔 環境變數的問題」,
[求助][已解決]批次檔的寫法 這標題來的一目暸然。

第二個是:可將此兩種方案編入主題文中
方法一:主題文中直接列出「解法文章」:
這樣壇友就不需到下面一堆回應中去找解答,主題文中就有解答說明。(請附上解答「出處」,以尊重發文者。)

方法二:主題文中直接直接列出「解法連接」:
只列出「解法」的「回應」「連接」(Ex: 解法一:http://twed2k.org/viewthread.php?tid=197447&page=1#pid1551871 - by ROACH )
用「本文連接」列出 ROACH & Jonson 「正確解答」回應 的位置即可。比較偷懶,比較輕鬆。(笑!)

P.S. 以上僅是 喵喵 的建議,要怎麼修改主題文,是 hartmann109 您個人的權利。(您高興就好!)



引用:
阿達猴寫到:
我可能會考慮用vb自己寫程式讀檔案...(亂寫= =我是程式新手...)


當然!能用「程式」寫作,執行效率高,彈性佳。
但不是每一個人都會寫「程式」,且你還得找「編譯器」編譯程式等等...問題要解決。


喵喵 個貓 認為,能用「現有」批次檔的工具來做,會比用「程式」門檻來的低。(Ex: VB, C,...),且資源取得方便。(已經內建在作業系統中)

[badcat 在  2007-11-14 03:45 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-11-22 03:30 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.260664 second(s), 6 queries , Qzip disabled