Windows için kendi özel iletişim kutularını oluşturmaya çalışıyorum; bunları mümkün olduğunca gerçekçi hale getirmek için kısayollar/wscript/ve VBS kullanarak sıfırdan oluşturmaya çalışıyorum. Bazı hatalar/diyaloglarım için, %computername%
değişkenini daha gerçekçi görünmesini sağlamak için bir iletişim kutusunda kullanmak istiyorum - "Sürücü C: %computername%
üzerinde biçimlendirilmiş" Bu değişkenleri daha önce toplu iş dosyalarıyla kullanmıştım ve her zaman . Ben VBS, farklı sözdizimi ile farklı bir dil olduğunu fark çalıştı ama ben çalıştım denedi örneklerin hiçbiriVBS'de Bilgisayar Adı Ortam Değişkeni MsgBox ile nasıl kullanabilirim?
Bu başlangıçta ben yapıyor çalıştı budur.
Set WshShell = WScript.CreateObject("WScript.Shell")
x=msgbox("Windows has reformatted Drive C: on %computername% successfully.", 0+64, "Hard Disk Reformat Successful")
Açıkçası etmedim Çalışmıyor ve aşağıdakileri elde ediyorum:
VBS enviornment değişkenlerini biraz kullanarak okudum. Ama bulduğum çözümlerin hiçbiri işe yaramadı.
: Ben kullanılan kaynak, ben kullanılan kodlar ve sonuç resmini listeledik - İşte işe yaramadı kullandığım kaynakların bazılarıdır Set WshShell = WScript.CreateObject("WScript.Shell")
dim oFso, oShell, oShellEnv, computerName, target, source
const overwrite = true
set oFso = CreateObject("Scripting.FileSystemObject")
set oShell = WScript.CreateObject("WScript.Shell")
set oShellEnv = oShell.Environment("Process")
computerName = oShellEnv("ComputerName")
x=msgbox("Windows has reformatted Drive C: on computerName successfully.", 0+64, "Hard Disk Reformat Successful")
2. Stack Overflow (different page) ve ss64
Set WshShell = WScript.CreateObject("WScript.Shell")
Set wshShell = Wscript.CreateObject("Wscript.Shell")
WScript.Echo "HOSTNAME: " & wshShell.ExpandEnvironmentStrings
("%COMPUTERNAME%")
WScript.Echo "DOMAIN : " & wshShell.ExpandEnvironmentStrings
("%USERDOMAIN%")
WScript.Echo ""
strServer=wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
x=msgbox("Windows has reformatted Drive C: on strServer successfully.", 0+64, "Hard Disk Reformat Successful")
dim strValue
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("WScript.Shell")
objShell.Environment("computername") = "This is some data to share"
strValue = objShell.Environment("VOLATILE")("MyVariable")
x=msgbox("Windows has reformatted Drive C: on strValue successfully.", 0+64, "Hard Disk Reformat Successful")
Burada yanlış mı yapıyorum? Bu konuda biraz ışık tutabilir mi? Bu oldukça önemsiz bir konu gibi gözüküyor ve ortam değişkenlerini bir iletişim kutusuna entegre edebilmeniz gerektiğini hissediyorum (daha önce Windows'da yerel olarak gördüm.) Uzun bir süredir toplu iş dosyaları ile çalışıyorum ama nispeten yeni VBS komut dosyası için ben herhangi bir yerde ya da bir şey gerçekten aptal bir hata yaptı, ben herhangi bir çalışma çözümü için arıyorum bir özür dilerim, özür dilerim. Bilgisayar adı veya değişkenin adı yerine gerçek yerel ana bilgisayar adı olan% computername% değerini gördüğümde, bu harika.
Yardımlarınız için şimdiden teşekkür ederiz!
DÜZENLEME: Tepki bu kodu kullanarak
@Lankymart için:
set WshShell = WScript.CreateObject("WScript.Shell")
Set wshShell = Wscript.CreateObject("Wscript.Shell")
WScript.Echo "HOSTNAME: " & wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
WScript.Echo "DOMAIN : " & wshShell.ExpandEnvironmentStrings("%USERDOMAIN%")
WScript.Echo ""
strServer=wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
x=msgbox("Windows has reformatted Drive C: on strServer successfully.", 0+64, "Hard Disk Reformat Successful")
bana bu verir:
iyi değil ama ne istediğim ise. Tamam'ı tıklatırsam, etki alanını ve sonra boş bir kutuyu, sonra da özgün iletimin computername öğesinin
, başlangıçta sorulan değil ne: Ne yapmak gerekir yukarı değişmez dize kırmak ve bunun gibi ortada değişkeni ile birlikte birlikte birkaç dizeleri bitiştirmek olduğunu. Bir dizginin içindeki değişkenleri çıkarmak isterseniz, [String Birleştirme] kullanın (https: // msdn.microsoft.com/en-us/library/sx97884w(v=vs.84).aspx) üzerinde çok sayıda örnek var. – Lankymart
Gelecekte lütfen [Minimal, Tam ve Doğrulanabilir bir örnek nasıl oluşturulur?] (Http://stackoverflow.com/help/mcve) okuyun, kendinizi ve bize çok fazla zaman harcamış olursunuz. – Lankymart
Bulunduğunuz tüm örnekler işe yaradı, sadece bunların her birini çalışmadıkları anlamına gelmeyecek şekilde değiştirdiniz, 'Örnek 2.' sistem ortam değişkenlerine değerler atayamazsınız, 'Örnek 3.' deyim, birden çok satırı ve 'Tüm Örnekler 'ifadesini kapsar, değişkenleri dizeleri halinde birleştiremezsiniz. – Lankymart