Search
Search
#1. Windows Batch 設定變數範例set variable example - 菜鳥 ...
用文字編輯器建立一個 test.bat 內容如下。 test.bat. @echo off rem 設定變數str的值為字串hello world ...
#2. cmd 如何把查詢到的資料放進變數? - iT 邦幫忙
之後只要ECHO 某個變數就可以得到當時紀錄的IP字串? ... 只是搞不懂批次檔為什麼%a不行, 要%%a,應該是避免跟其他情況混淆吧,畢竟bat裡可以寫的很複雜,命令提示字元 ...
#3. bat檔案用echo列印變數顯示ECHO IS OFF/ECHO已關閉 - IT人
解決辦法:set給變數賦值的時候等號兩邊不要加空格像是echo Hello 這種還是能列印出來試圖列印變數“a”時@echo offset a = helloecho %a% 顯示“ECHO IS ...
#4. BAT批次檔
echo %_MyDate% ----程式結束---- 看看執行的結果: C:\>MyDate 螢幕輸出: 20060307星期二 想不到只是透過幾行程式碼就可以去掉日期變數的分隔符號了,相信有不少人看 ...
echo %a% ==>輸出1+2. set /a a=1+2 echo %a% ==>輸出3. [設定變數為使用者輸入的值]
#6. BAT批處理中的字串處理
對於上面的例子有一點說明,對比兩個echo aa = %aa%可以發現,如果要修改變數aa的內容的話,就需要將修改結果“%aa:中國=中華人民共和國%”賦值給變數aa ...
#7. batch 指令筆記
在StackOverflow 上有個回答包含了很完整的批次檔樣板,template.bat,可以從這個 ... 用來顯示訊息的指令是 echo ,其後可加上字串或變數(可混搭),在正常的情況下, ...
BAT 執行方式:CMD.EXE下執行C:\TEST.BAT @IF exist C:\TEST.TXT ( @FOR /F "tokens=*" %%A IN ('VER') DO @SET VERNO=%%A @ECHO Windows Version ...
#9. Windows Batch 常用命令| 阿輝的零碎筆記 - - 點部落
Windows Batch 常用命令. ... echo #顯示當前是echo off 狀態還是echo on 狀態 ... echo %p:~6% #顯示變數p中第6個字元以後的所有字元,即aa2bb2.
echo \”歡迎來到非常BAT!\” pause 把上面的3條命令儲存為檔案test.bat或者test.cmd然後執行, ... 在echo之前明明已經把變數a的值改成5了?
#11. 環境變數(Environment Variable) | 命令列及環境變數教學
在Windows 的命令提示字元中,如果要使用 echo 印出變數,必須將變數名稱前後加上 % 才可以正確列印出x 裡面的數值123,而不是只有印出x 這個字,請自己試試看 echo x ...
#12. DOS指令-- SET和變數 - 大軒軒的筆記本
在Dos中,set用來建立變數和指定變數的值在批次檔中使用set指令的時候,建議 ... echo %~0 //可能會是c:\test_dir\test.bat,端看批次檔的位置
#13. 命令提示字元10:變數指令 - 初學者之卷
也就是說,如果在64 位元的作業系統中執行32 位元的cmd.exe,他會出現「x86」。要正確的顯示正確架構,要用登錄檔,這裡有解法。 echo %cd%. 這個就 ...
#14. 淺談Batch File Command - WT's Blog - 痞客邦
這篇就來稍微分享一下常用的指令與用法吧。 @ ECHO FOR IF PAUSE %VARIABLE% %DIGIT REM CLS ...
#15. set | Microsoft Docs
您可以使用環境變數來控制某些批次檔和程式的行為,並控制Windows 和MS-DOS 子系統的外觀和運作方式。 Set命令通常會在Autoexec nt檔案中用來設定環境變數 ...
#16. bat 批次檔指令 - ca95 台灣地誌- 痞客邦
這些是在bat批次檔裡面常會看見的,其他還有像是shift、for、...echo . ... if "%config%"=="mini" goto mini (判斷指令"變數"=="字串" 到mini項) ...
#17. Batch File | Miles' Blog
BAT 或.CMD,BAT 是DOS 下的批次檔,CMD 是NT 內核命令列下的另一種批次檔案, ... ECHO. ECHO [ON/OFF/string]. ON/OFF 是設定 C:\> 和批次檔的指令要不要顯示,不加 ...
#18. [Batch#1] Windows批次檔-取得系統日期的簡單方法與環境 ...
DATE環境變數系統日期可由DATE環境變數取得,在DATE前後加上% 即可取出其值: d:>echo %DATE% 2019/12/15 DATE的值受日期格式設定而有不同, ...
#19. BAT批次次指令: SET 的功能介紹- 一般電腦軟體討論
請參看CMD /? 延遲環境變數展開功能可用來避開展開功能限制。 這項目限制是發生在指令列讀入找取程序,不是發生在執列程序。 ... 這個例子永遠無法顯示echo ...
#20. Batch - Echo or Variable Not Working - Stack Overflow
@nasch, why sould %@var% not work? @ can occur in variable names just like letters, also on Windows 10. (The @ has got special meaning only when ...
#21. BAT:批處理教學(上) - hses - 痞客邦
△1. echo 指令說明:顯示資訊,或將指令回顯開啟或關上。 ... 備註:在批處理檔案中使用for 指令時,指定變數請使用%%variable,而不要用%variable。
#22. WINDOWS 10 BAT 路徑變數字串相加– jashliao部落格 - Zi 字媒體
Code: REM WINDWOS 10 BAT 路徑變數字串相加REM cd C:\Program Files\WinRAR REM WinRAR.exe set Path=C:\Program Files\WinRAR\ echo %Path% set ...
#23. [教學] DOS批次檔製作- BAT檔語法
製作批次檔其實不難,1) 打在txt 裡,2) 另存成.bat 檔,就完成. ... 第一行打"ECHO OFF",這樣一來之後的命令都不會顯示,改成"ECHO ON" 的話,每行 ...
#24. 批處理將變數寫到文件
本資訊是關於bat如何將變數內容寫入txt,如何把批處理中的變數值寫入txt ... 空,對於echo 命令為空就是顯示當前回顯狀態加call並雙寫%是解決變數延遲 ...
#25. BAT 延遲變數 - w3c學習教程
延遲環境變數在bat裡是重中之重,雖然前面說過,熟練應用for才算會寫批處理 ... echo. ,得到的結果是螢幕上顯示出. c:\windows 。這個應該很好理解。
#26. bat指令碼基本命令語法 - tw511教學網
IF not EXIST autoexec.bat echo 檔案不存在! 這個批次處理大家可以放在C槽和D槽分別執行,看看效果 16、setlocal 與變數延遲本條內容參照[英雄出品] ...
#27. bat echo變數 - 軟體兄弟
bat echo變數,2019年7月3日— @echo off&setlocal enabledelayedexpansion set basepath=D:- set /a fcount=0 set /p a=input: for /l %%a i...
#28. Day5 跟一般的指令可不一樣啊!跟我所認識的指令不同啊!
在Windows裡給CMD的腳本稱為批次檔,而Linux裡給終端機執行的腳本叫做shell ... 設定變數set 變數名稱=想要的數值或是字串rem 取用(這裡是印出)變數echo %變數名稱%.
#29. windows bat指令碼編寫_其它 - 程式人生
如果沒有任何引數,echo 命令將顯示當前回顯設定。 語法 echo [{ on|off }] [message] ... BAT;.CMD(語法與PATH 變數相同,使用分號分開不同元素)。
#30. BAT批次指令: For的功能介紹
用已找到的字串值為變數值,來呼叫For 迴圈的內容。 ... For /F "eol=; tokens=2,3 delims=, " %%i in (myfile.txt) do @echo %%i %%j %%k
#31. Windows batch file教學筆記 - 冒險與思考
@ :隱藏command prompt和執行的指令 · echo · echo 字串時不換行的方法(較麻煩,但查無其他解): · 變數 · PAUSE 暫停執行批次程式 · %DIGIT batch file所接受 ...
#32. 批處理(.bat):釋義,命令簡介,echo 命令,rem 命令,pause 命令
其中,%%variable是批處理程式裡面的書寫格式,在DOS中書寫為%variable,即只有一個百分號(%);set就是需要我們設定的循環範圍,類似於C語言裡面的循環變數;do後面的 ...
#33. Windows 批次檔-迴圈、if
help for 看文檔在批次檔裡變數用兩個%;cmd只要一個% 即可變數名有區分大小寫, ... @echo off ::列出當前路徑的所有檔案名稱,只有檔名::for %%i in ...
#34. BAT批次指令: IF 的功能介紹 - Johnson峰的部落格
echo filename. missing. ) 以下命令無法作用,因為del 命令必須以換行字元來結尾: IF EXIST filename. del filename ...
#35. 變數的使用
set CMD=java echo %CMD%. 上述的batch會在螢幕上顯示出java字眼。系統中在cmd執行後,就會有預設的變數產生,也就是環境變數。要看到這些環境變數,可以透過set的指令 ...
#36. 將變數用作陣列 - 他山教程
通過在 SET 語句中使用空格,可以建立一組可以與陣列類似的變數(儘管它們不是實際的陣列物件): placeholderCopy @echo off SET var=A "foo bar" ...
#37. 轉載windows 批次檔介紹使用@ 刀思無窮。劍思無盡 ... - 隨意窩
若果沒有任何參數,echo 指令將顯示目前回顯設定。 語法echo [{on|off}] ... 指定要呼叫的批處理程式的位置和名稱。filename 參數必須具有.bat 或.cmd 副檔名。
#38. dos_batch.doc
設定區域變數:setlocal/endlocal. windir. username. var ...... cmd.exe. my.bat. Setlocal/endlocal範例. call demo.bat. echo %id%. output : oct. set id=oct.
#39. bat檔案 - 中文百科知識
它的檔案擴展名為.bat 或.cmd。 ... echo Usage: monitor.bat ServerIP PortNumber. goto end ... 在批處理檔案中使用FOR 命令時,指定變數請使用%%variable.
#40. Re: [問題] bat 問題請教- 看板Programming - 批踢踢實業坊
這裡有兩個問題其一, Windows 的變數展開是在讀取指令時取代注意這並不是細部的一條指令, ... 0 ( : echo "%process_name%" Program is Running !!!
#41. DOS/Windows 檔案加上日期- Notes
方法1. · 要在DOS/Windows 指令模式下將檔案名稱加上日期, 可以利用%Date%變數來達成, 如下: · 用echo來測試: · 將log.txt的檔名加上今天的日期log20110803.txt.
#42. Windows 批次檔令人崩潰的特殊字元處理 - 心之呢喃
由於括號對CMD 有特殊語義,因此程式會找不到真正的資料夾而出錯。 要解決以上問題,一個做法是延遲變數展開,如下: @echo off chcp 65001 set ...
#43. Windows平台– BAT批次次指令: SET 的功能介紹 - 易春木
如果在目前的環境中找不至變數名稱,SET 指令會將ERRORLEVEL設為1。 ... 這個例子永遠無法顯示echo 訊息,因為在兩個IF 敘述中的%VAR% 會在第一個IF ...
#44. 如何利用批次檔(Batch)讀取指令執行的結果或文字檔案內容分享
注意:在批次檔中要寫%i 變數必須要寫成%%i 才行,如果直接在指令列模式執行時可直接輸入%i ... for /F %i IN ("a b c") DO echo %i; 指令執行結果
#45. IT小僧- 如何寫出判斷的BAT批次檔 - 電子書籍
隨便寫了一下,可符合你所要的需求~ @Echo Off Findstr /I /P /C:"Version=11.1" ... 設定為變數, 加上指定version變數功能。 set 部分做法也可以直接用兩津勘吉的作法。
#46. DOS 指令與批次檔
@echo off for /f "tokens=1,2" %%l in (for1.bat) do (echo %%l %%m). 表示要傳回前兩個字符, 注意到雖然在in 前面只有指定變數l, 但是在do 後面可以使用自動依字母序 ...
#47. BAT CMD 批次檔指令碼總結
Echo !_html! ENDLOCAL @echo off. REM 使用變數延遲擴充來處理html語句。 SETLOCAL EnableDelayedExpansion. Set _html=html format: ^<title^>Hello ...
#48. 批處理檔案 - 華人百科
中文名稱批處理檔案外文名稱BATCH常見尾碼·bat 或·cmd運行平台DOS或Windows系統特點無. ... 變數可以從%0到%9,%0表示檔案名稱本身,字元串用%1到%9順序表示。
#49. 【Windows】SET指令的兩個妙用 - 快閃人生
Windows Command SET是很好用的一個指令, 變數的指定就要靠這支工具! ... @ECHO OFF CLS SET /A A = (50 + 25) / 3 - 20 ECHO (50 + 25) / 3 - 20 ...
#50. 如何利用批次檔取得今日的日期或時間,甚至是部分的日期或時間
指令取得所需的部分日期或時間內容。 先看看日期變數的內容是什麼: C:\>echo %date% 螢幕輸出: 2006/03/07 星期二<----- Windows XP/Server 2003 的 ...
#51. [Windows]Batch Script取得輸入來源(手動輸入與帶參數的方式)
環境參數. 作業系統. Windows 2012 R2. 方式一(用戶自己輸入). edit test1.bat. @echo off; set /p Param=PleaseEnterVar: echo %Param%.
#52. 透過Bat(*.bat)程式傳遞參數給Windows程式(.Exe)並自動關閉 ...
使用start去啟動Exe程式,可以不必等Exe程式執行結束,Bat的Dos視窗就可以關閉 3. @Echo Off 及cls 指令用來關閉Bat的Dos視窗(經測試發現,不加Exit ...
#53. [.bat][批次檔][cmd指令] For 迴圈 - 夢想當富婆的工程師
如果是寫成.bat檔,變數需要前面加兩個%,如果是cmd line中執行,就只需要一個%. # for /L %i in (1,2,10) do echo %i. for後面加了參數 /L 就是我們 ...
#54. 詳解bat檔案暫停延時的指令碼程式碼 - IT145.com
echo Fs > ss1.txt ping 192.0.2.2 -n 1 -w 300000 > nul echo Fs2 > ss2.txt ... 設定變數:: set 檢視環境變數:: set 引數名=引數值:: 參照變數%變數 ...
#55. windows cmd 指令讀取輸入的字串 - XYZ的筆記本
以下在windows 寫一個bat 批次檔,操作nginx 的管理指令(start ... echo graceful shutdown of old worker processes) echo 5:nginx -s reopen ...
#56. bat腳本的常用特殊符號 - 台部落
<,輸入重定向命令,從文件中讀入命令輸入,而不是從鍵盤中讀入。 @echo off echo 2005-05-01>temp.txt date <temp.txt del temp.txt 這樣就可以 ...
#57. 在win10 使用BAT-File 來自動安裝anaconda 環境 - 羔羊的實驗 ...
set指令 · 不加參數直接輸入SET,可以顯示環境變數 · /a參數:做數學運算. set /A a = 40 * (20 - 15 ) echo 40 * (20 - 15 ) = %A% Copy · /p參數:把檔案 ...
#58. [分享] DOS 批次檔batch file 取得日期為變數值的運用
@echo off @For /f "tokens=1-3 delims=/" %%a in ('date /t') do (set ... LOT或BATCH(B):全名是(LOT number ∕ BATCH number),有時也會...
#59. BAT批次檔最基礎的71個指令 - 無尾熊資訊電腦
ECHO 顯示訊息、開啟或關閉命令回音。 ENDLOCAL結束批次檔環境變更的本土化工作。 ERASE 刪除一個或更多檔案。 EXIT 結束CMD.EXE 程式( ...
#60. BAT大補帖- First BAT (01) - Live-MAN
ECHO 這一個指令是非常重要的,就像printf一樣,我們可以在程式中途插入一個echo,印出我們想了解某一個變數目前的數值,看是不是我們想要的數值。
#61. Batch 教學 - 請勿拍打
echo Usage: monitor.bat ServerIP PortNumber goto end ... 指定要調用的批處理程序的位置和名稱。filename參數必須具有.bat或.cmd擴展名。 7.start 命令
#62. 如何利用[CMD 批次檔.bat] 設定環境變數永久與暫時 - CHG
設定暫時變數. @echo off Title JAVA_PATH By Charlotte.HonG& Color 1A set str=%PATH%;%~dp0jdk1.8.0_101\bin; set PATH = "%str%" exit.
#63. Batch File To Write Variable To a Text File - StackHowTo
In this tutorial, we are going to see how to write variable to a text file by using ECHO. The batch file contains a series of DOS (Disk ...
#64. 關於DOS(windows)下取得系統日期的方法:用於自動備份資料用
Ex: echo %date:~0,4%%date:~5,2%%date:~8,2% Ex: 自動按照日期建立資料夾 rem 設定資料夾名稱變數(依照日期建立資料夾)
#65. PowerShell - Windows PowerShell介紹 - 限量ㄟ蓋步
大家都知道Unix系統有Shell Script(.sh),相對的Windows系統有Dos Script(.bat, ... 變數取得Get-ChildItem當下目錄的所有資料夾與檔案的資訊,並echo ...
#66. bat腳本命令 - 壹讀
運行Pause 命令時,將顯示下面的消息: Press any key to continue . . . Sample: @echo off :begin copy a:* ...
#67. 批次檔教學 - 亂貼小站
要DOS 執行批次檔的指令,只需鍵入主檔名,例如Menu.bat 或menu。 ... 最多可使用10個代換參數,這些變數的值,則由呼叫批次檔的命令所指定。 Ex: @echo off echo .
#68. 批次處理程序的字串功能(Function of String in Batch)
Windows 的Batch File 與Unix/Linux 的Shell Script 很相似但在功能 ... echo 是將資料輸出至命令提示字元的指令被% 前後包著的文字便是變數名稱
#69. 关于何谓批次档(Batch File)? · 将多个指令置於同一档案,让OS ...
萬用字元: *.exe 目錄: . .. nul cmd 的DOS 指令o ????.bat 檔案目錄 ... 環境變數操作o 一般用法:set var=henry 讀取var 變數:echo %var% 顯示 ...
#70. batch script | 夢想家
@echo off & cls set var=testing 1 2 3 echo The variable is ... The most obvious way to pause a batch file is of course the PAUSE command.
#71. 微軟帝國: [分享] DOS 批次檔batch file 取得日期為變數值的運用
在繁體中文版Windows Server 2003 及Windows XP 測試ok.... 批次檔內容(例如: log.bat ). @echo off @For /f ...
#72. Why does the Windows Batch script output the variable as ...
The echo command can display messages, variables and/or messages and variables on the screen, but it can also return the current status to the echo command, ...
#73. 如何使用batch(.bat)建立大量URL - MICRO 的工作筆記
... 範例,做出適合我自己lab用的批次檔如此一來, 可以將XML固定的欄位與變數欄位藉次方式直接產生, 完成後將這整段貼回XML即可XD lab.bat @echo off
#74. bat 输出变量%变量名%_mengzuchao的专栏 - CSDN博客
版权. bat 专栏收录该内容. 4 篇文章 0 订阅. 订阅专栏. 如: a.bat 文件内容为如如下. rem 输出当前文件. set curfile=%0. echo %curfile%.
#75. COMMAND.COM - 維基百科,自由的百科全書
允許外部程式執行低層磁碟存取(僅MS-DOS 7.1和Windows 9x)。 MKDIR: 新建一個目錄。 PATH: 顯示或更改控制COMMAND.COM尋找可執行檔位置的PATH環境變數值。 PROMPT ...
#76. Windows批次檔(Batch File)常用專用指令整理 - 楓葉中的藍影
echo off:批次檔內所下的指令全部隱藏,不顯示於螢幕上。 ... if errorlevel:由OS所管理的一個系統變數,目的是監視所有錯誤發生的情況。
#77. BAT批次檔案語法(下) - 瘋狂小狼犬
ERRORLEVEL 環境變數被設定為從選擇集選擇的鍵索引。 ... BAT ECHO \AUTOEXEC.BAT does not exist. 然後執行它: C:\>TEST1.BAT.
#78. bat脚本的基本命令语法- 整合侠 - 博客园
bat 脚本的基本命令语法一、批处理的常见命令1、REM 和:: 2、ECHO 和@ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备8、G.
#79. 我的Windows 平台自動化經驗:基礎批次檔撰寫實務
命令直譯器有哪些內建變數變數名稱變數值%CD% 目前. 在批次檔中使用% 的注意事項• 在命令提示字元. 特殊字 ...
#80. 透過Bat(*.bat)程式傳遞參數給Windows程式(.Exe)並自動關閉 ...
Code:(*.Bat)start c:\Test.exe %1@Echo OffclsEXIT說明:1. %…
#81. bat - for @ flyfox - 痞客邦
C:\>for /f "tokens=1,2,3 delims=/ " %a in ('date /t') do @echo %a-%b-%c ... 則會配置一個額外的變數來接收最後一個字串項被分析後的其他文字。
#82. 批次檔案刪除n天前的檔案 - 傑森的筆記
下列表格列出了您可以在/cCommand 命令字串中使用的變數。 變數描述 ... forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file is a batch file"
#83. Echo - Windows CMD - SS64.com
Echo a Variable · If the variable does not exist, ECHO: will return the variable name"%_var%" · If you are using DelayedExpansion (!_var!) AND the syntax to ...
#84. batch-file Tutorial => Echo output to file
Example#. Ways to create a file with the echo command: echo. > example.bat (creates an empty file called "example.bat") echo message > example.
#85. Set a user variable in a Windows bat file - IBM
Within the batch file, set the values and scopes of multiple variables by specifying the ... echo variable=value > %JS_FLOW_VARIABLE_FILE%[%LSB_JOBINDEX%].
#86. Windows CMD: PATH Variable - Add To PATH - Echo PATH
Windows CMD: PATH Variable – Add To PATH – Echo PATH ... PATH is an environment variable that specifies a set of directories, separated with ...
#87. 程式開發| 終極dos批處理循環命令詳解 - NoSleep | 資訊癮想力
do echo %%i --顯示當前目錄下名字只有1-3個字母的目錄 ... echo ---顯示"dir C:\WINDOWS\system32\notepad.exe /b"
#88. 探密BAT腳本技術解放你的雙手減少重複勞動原來如此簡單
@echo off echo Hello World! echo 關注牧碼人1981,開始程式設計師進化之路! pause. 保存為Hello World.bat。雙擊運行.
#89. 利用BAT 寫批次處理 - icodding愛程式
變數 可以從%0到%9,%0表示批次處理指令本身,其它參數位符串用%1到%9順序表示。 例2:C:根目錄下有一批次處理檔案名為f.bat,內容為: @echo off
#90. 批次檔字串變數取代 - CAPPELLA 的黃昏地帶
echo 和@ 回顯命令 @ #關閉單行回顯 echo off #從下一行開始關閉回顯. @echo off #從本行開始關閉回顯。一般批次處理第一行都是這個
#91. 軟體- CMD與Curl雙劍合璧:自動合併多頁主題
再與CMD中強大的FOR 指令和變數相結合,加上人類的小小智慧,就可以打造出自動抓取該主題的全部 ... echo Usage: monitor.bat ServerIP PortNumber
#92. 軟體求助討論區- [求助]bat 語法 - TWed2k
發表人: fishwater 時間: 2008-6-18 01:53 PM 主題: [求助]bat 語法 請問一個bat語法 ... %%i >> log.txt 把程式執行的結果讀到變數, 然後echo 變數到畫面跟echo到檔案 ...
#93. BAT批次檔案語法
變數 可以從%0到%9,%0表示批次處理命令本身,其他參數字串用%1到%9順序表示。 例2:C:根目錄下有一批次檔案名為f.bat,內容為: @echo off format %1.
#94. bat 批次檔指令
if "%config%"=="mini" goto mini (判斷指令"變數"=="字串" 到mini項) ... 用法:在批次檔中鍵入echo on/off ,on:表示要印出命令列,off:則不印出 ...
#95. [OS]批次檔輸入參數(Batch File Command-Line Parameter)
參考文章判斷User 是否有加入參數IF NOT (%1)==() (echo 若有. ... 另外,為了取出日期時間並建立資料夾,所以要另外格式化日期時間變數, 寫法如下:
#96. 【Windows Command 教學】"echo" 指令如何使用? - 阿湯哥 ...
用於使用Batch (.BAT)檔時,顯示訊息,或開啟或關閉命令回顯功能。 語法. echo ...
#97. Batch Script - Variables - Tutorialspoint
The following example shows a batch file which accepts 3 command line arguments and echo's them to the command line screen. @echo off echo %1 echo %2 echo % ...
#98. Environment Variables in Windows/macOS/Linux
To reference a variable in Windows, use %varname% (with prefix and suffix of '%' ). For example, you can use the echo command to print the value of a ...
.bat echo 變數 在 Re: [問題] bat 問題請教- 看板Programming - 批踢踢實業坊 的八卦
※ 引述《blackspace98 (~我愛夏天~)》之銘言:
: if %ERRORLEVEL% == 0 (
: echo "%process_name%" Program is Running !!!
: ) else (
: echo "%process_name%" Program is Not Running !!!
: set /p index=input[Y,N]:
: echo %index%
: if "%index%" == 'Y' (
: start D:\software\FSCapture.exe
: )
: )
: pause
: 如果把黃色的部分拿掉只剩下 start D:\software\FSCapture.exe
: 就很順利的達成我要的結果
: 但是如果加上黃色的部分,當我執行的時候就會出現如下的訊息
: input[Y,N]:Y
: ECHO 已關閉。
: 請按任意鍵繼續 . . .
: 請問各位,這應該怎麼解決呢? 謝謝您
這裡有兩個問題
其一, Windows 的變數展開是在讀取指令時取代
注意這並不是細部的一條指令, 而是最外層的一條指令
在此就是我上面留下來的 if ... (...) else (...) 這一大塊
在讀取這條指令的當下 %index% 還沒有值
所以那行 "echo %index%" 就只會展開成 "echo "
而沒有參數的 echo 是用來顯示目前的 echo 設定情形的
(就是執行指令時要不要先印指令出來)
因為這時是 echo off 狀態所以顯示了「ECHO 已關閉。」
這個要解決得要使用所謂的「延遲環境變數展開」功能
用法是原本用 %...% 展開的變數改成 !...!
這樣就能夠讓變數展開留到底層指令執行時才展開
其二, 你的 if 字串比對用法錯了
事實上 Windows batch 的 if 只要裡面有帶 == 就一定是字串比對
不需要也不認得雙引號
這個雙引號的使用跟 if 無關, 而是跟命令列參數的切割有關
但因為 if 是內部指令, 他會直接去看這個切割出來的參數字串而不刪除雙引號
因此當比較字串兩端的引號狀況有所不同時就一定不會成立
例如 if "a" == a (echo True) else (echo False) ←這個印出 False
if "a" == 'a' (echo True) else (echo False) ←這個也印出 False
if "'a'" == 'a' (echo True) else (echo False) ←這個也印出 False
if "a" == "a" (echo True) else (echo False) ←這個印出 True
if a == a (echo True) else (echo False) ←這個也印出 True
if 'a' == 'a' (echo True) else (echo False) ←這個也印出 True
所以, 這裡你要改成 if "!index!" == "Y" ( ...
這樣才會正確比較 (注意這裡也是延遲展開, 理由很容易明白)
另外應該有不少人有聽說這種比較就都加雙引號, 這是為了安全起見
因為變數裡有空白或根本變數就是空值時會對命令解析造成影響
要讓 == 兩邊都能有恰好一個東西的話用 "" 抓起來讓它切割成一整個參數再去比最簡單
--
1985/01/12 三嶋鳴海 1989/02/22 優希堂悟 1990/02/22 冬川こころ 1993/07/05 小町
つぐみ 歡迎來到 1994/05/21 高江ミュウ 1997/03/24 守野いづみ 1997/03/24 伊野瀬
チサト 1998/06/18 守野くるみ 打越鋼太郎的 1999/10/19 楠田ゆに 2000/02/15 樋口遙
2002/12/17 八神ココ 2011/01/11 HAL18於朱倉岳墜機 ∞與∫的世界 2011/04/02 茜崎空
啟動 2012/05/21 第貮日蝕計畫預定 2017/05/01~07 LeMU崩壞 2019/04/01~07 某大學合宿
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.39.85
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1452186223.A.B89.html
... <看更多>