- ทำไม่เป็นหรอกนะ แต่เห็นวิธีนี้ง่ายดี เลยบันทึกเก็บไว้หน่อย
- กันเหนียวอีกแหละ ^^'
- ประเด็นมีอยู่ว่า เป็น newbie สำหรับ batch file
- เริ่มเขียนไปแหละ 1 ไฟล์ แต่ยังใช้ loop และ array ไม่ค่อยเป็น
- ตามที่มาเค้าบอก One way to do it is to create a text file
- คือเรามีค่าอาไรบ้างให้เพิ่ม ค่านั้นต่อ 1 บรรทัด
- จากนั้นใช้ for แบบนี้ได้เลย
- a คือ ตัวแปรที่จะรับจาก text file ทีละบรรทัด
FOR /F "tokens=*" %a IN (file.txt) DO (
yourcommand %a
)
ด้านล่างคือ ข้อความทั้งหมดที่เค้าตอบกัน@ECHO OFF
FOR /F %%A IN (C:\TEST\lpcqparm.cfg) DO (
@ECHO %%A:~0,9%
SET VAR=%%A
@ECHO %VAR%
)
Ok, here's the thing - I know there's a way to do this as I worked on a question where we tried to parse drive letters like that, but the command that gave the drive letters worked strangely. Unfortunately, I don't remember the EXACT "for" command syntax for it (I'll try to dig it up but I'e participated in a LOT of questions).
One way to do it is to create a text file - fruits.txt - so the text file is your array. In your example, the text file would have 4 lines, one fruit per line, NOTHING ELSE.
Then this for command would execute the command for each fruit. The nature of a batch file won't allow it to run the next command until that one is done. (Again, there are ways around this, but you WANT this behaviour).
FOR /F "tokens=*" %a IN (fruits.txt) DO yourcommand %a
For a demonstration, run this command:
FOR /F "tokens=*" %a IN (fruits.txt) DO @Echo my fruit is %a
NOTE: when using the for command in a batch file, you need to use %% instead of % - so BATCH FILE ONLY:
FOR /F "tokens=*" %%a IN (fruits.txt) DO @Echo my fruit is %%a
ที่มา
No comments:
Post a Comment