私はWindows用の独自のカスタムダイアログを作成しようとしていますが、ショートカット/ wscript /とVBSを使ってできるだけ現実的なものにしています。私のエラーやダイアログの中には、ダイアログ内で%computername%
変数を使用して、より現実的なものにしたいと思っています。たとえば、「ドライブC:は%computername%
にフォーマットされました。 。私はVBSは、異なる構文を使用して異なる言語であることを認識働いたが、私が働いているしようとしている例はいずれもMsgBoxでVBSのコンピュータ名環境変数を使用するにはどうすればよいですか?
これは、もともと私がやってみましたものです:。
Set WshShell = WScript.CreateObject("WScript.Shell")
x=msgbox("Windows has reformatted Drive C: on %computername% successfully.", 0+64, "Hard Disk Reformat Successful")
VBS環境変数を少し使って読み上げました。しかし、私が見つけた解決策のどれも働かなかった。
:私は私が使用したリソース、私が使用したコード、および結果の画像をリストされている - ここでは動作しませんでした、私が使用したリソースの一部です
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)とss64
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")
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")
私はここで何か間違ったことをやっていますか?誰かがこれにいくつかの光を当てることができますか?これはかなり些細な問題のように思えますし、環境変数をダイアログボックスに組み込むことができるはずです(以前はWindowsでそれを見たことがあります)。私は長い間バッチファイルを使っていましたが、比較的新しいVBSスクリプトに変換するため、私はどこか何かで本当にダムのミスを犯した場合には謝罪します。
私は実用的な解決策を探しています。私が%computername%を参照している限り、computerNameまたは変数の名前ではなく実際のローカルホスト名です。
ご協力いただきありがとうございます。
EDIT:このコードを使用して
を@Lankymartする 応答:優れている
ではなく、かなり私が何を望むか:
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")
は私にこれを提供します。 [OK]をクリックすると、ドメインと空のボックスが表示され、strServerの元のメッセージはコンピュータ名が
になります。
、あなたが最初に尋ねていない何:何をする必要がアップリテラル文字列を分割し、このような途中で変数とともに一緒にカップルの文字列を連結しています。文字列の中に変数を出力する場合は、[String Concatenation](https:// msdn。microsoft.com/en-us/library/sx97884w(v=vs.84).aspx)には[so]の例がたくさんあります。 – Lankymart
将来的に[最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を読んでください。無駄な時間を節約できます。 – Lankymart
あなたが見つけたすべての例がうまくいきました。それぞれの例を作業しなかったという意味で修正しました。例2では、システム環境変数に値を代入することはできません。例3では、ステートメントは複数の行と 'All Examples.'にまたがっています。文字列に変数を挿入することはできません。 – Lankymart