วันจันทร์ที่ 1 กรกฎาคม พ.ศ. 2556

ปูพื้นฐาน(ขั้นเทพ) Batch File ตอน 5

ฟังกชั่นเปอร์เซ็นต์แสดงการโหลดหรือทำงาน?

การเรียกใช้งาน
@echo off
title Process bar Batch File
for /l %%a IN (0,1,100) do (
  call :ShowPercent %%a
)
set a=
set b=
set p=
goto :EOF

:ShowPercent %1
mode 51,5
color b
set /a a=(%1/2)
set /a b=%1-(%1/2)
if %a% lss %b% (set p=%p%^#)
cls
echo ==================================================
echo %p%
echo ==================================================
echo                         %1%% 
ping 0.0.0.0 -n 1 -w 1 >nul
goto :EOF


ฟังก์ชั่้นนี้...เหมาะสำหรับแสดงการทำงาน...โดยค่าสูงสุดอยู่ที่ 100 ส่วนต่ำสุดอยู่ที่ 0 ครับ อาจแสดง...หลอกๆ ตามตัวอย่างก็ได้

การติดต่อสื่อสารระหว่าง VBScript กับ Batch File?
ตัวอย่างสคริป VBScript
set WS=CreateObject("WScript.Shell") ' กำหนดคำสั่ง Shell
set WSE=WS.Environment ' กำหนด Eliment ตัวแปร
WSE("TestVar") = "ข้อมูลภายในตัวแปร" ' กำหนดข้อมูลตัวแปร TestVar 
msgbox "TestVar = " & WS.ExpandEnvironmentStrings("%TestVar%") ' แสดงค่าในตัวแปร
rem WSE.Remove "TestVar" ' ล้างตัวแปร TestVar

บรรทัดสีน้ำเงินแสดงถึงคำสั่งของ VฺBScript ซึ่งสามารถส่งค่า Environment ผ่านมายัง Batch File ได้...จึงทำให้ Batch File นั้นสามารถใช้ประโยชน์ VBScript ได้เช่นกัน

การรับข้อมูลของ Batch File ผ่าน VBScript?
โดยปกติแล้ว...Batch File สามารถรับข้อมูลที่ Console ได้เลยดังนี้
set /p ตัวแปร=ข้อความแสดง{วรรค}
เช่น
set /p Name=Enter Your Name : 
ทีนี้...ไม่สามารถแสดงผลภาษาไทยได้...เลยต้องประยุกต์ VBScript มาดังนี้

@echo off
call :InputBOX
set /p a=Enter : 
msg %username% %a%
goto :EOF

rem ฟังก์ชั่นสร้าง VBScript เพื่อรับภาษาไทย
:InputBOX
( echo dim str
  echo set WS=CreateObject^("WScript.Shell"^)
  echo str = inputbox^("กรุณากรอกข้อมูล"^)
  echo WS.SendKeys str+"{Enter}"
)>Inputbox.vbs
start inputbox.vbs
goto :EOF

ไม่มีความคิดเห็น:

แสดงความคิดเห็น