gpt4 book ai didi

c# - 将 C# 字符串传递给 VBscript

转载 作者:太空宇宙 更新时间:2023-11-03 14:11:48 24 4
gpt4 key购买 nike

我正在使用 Windows 窗体并尝试将字符串传递给 vbscript。该程序要求用户选择一个文件夹,我正在尝试选择文件夹并将其传递给 vbscript。

C#代码:

String SelectedFolder = @"C:\Users";

folderBrowserDialog1.SelectedPath = SelectedFolder;
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
//Set selectedFolder equal to the folder that was choosen
SelectedFolder = folderBrowserDialog1.SelectedPath;
//Call VBScript
System.Diagnostics.Process.Start(".vbsPath");

VB脚本:

TargetFolder = Request.QueryString("SelectedFolder")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
Set colItems = objFolder.Items
For Each objItem in colItems
objItem.InvokeVerbEx("Print")
Next

如有任何帮助,我们将不胜感激。谢谢

最佳答案

C# 端

使用 Process.Start overload that accepts command-line parameters :

System.Diagnostics.Process.Start("C:\path\to\my.vbs", selectedFolder);

如果 selectedFolder 可以包含空格(这很可能会发生),您应该将参数括在引号中。

System.Diagnostics.Process.Start("C:\path\to\my.vbs", 
"\"" + selectedFolder + "\"");

事实上,如果路径可以包含引号和/或尾随反斜杠,转义会变得更加复杂,请参阅这些问题(和其他问题)以获取详细信息:Escape command line arguments in c# , Passing command-line arguments in C# .


VBScript 端

在您的 VBScript 中,读取第一个命令行参数:

targetFolder = WScript.Arguments.Item(0)

关于c# - 将 C# 字符串传递给 VBscript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7583993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com