我无法在VBScript中获得以下功能.我试图获取文件夹中的所有文件并循环它们以获得编号最高的文件.(文件名格式为log_XXX.txt)我遇到的问题是代码永远不会进入我的For Each循环.我是VBScript的新手,但我似乎不明白为什么这不起作用.
Function GetFileNumber(folderspec)
Dim fso, f, f1, fc, s, tempHighNum
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
WScript.Echo f.Files.Count : rem prints 3
Set fc = f.Files
WScript.Echo fc.Count : rem prints 3
Set tempHighNum = "000"
For Each f1 in fc
WScript.Echo f1.Size : rem does not print
WScript.Echo f1.Type : rem does not print
WScript.Echo f1.Name : rem does not print
s = Right(f1.name,3)
IF NOT(ISNULL(s)) THEN
IF (s > tempHighNum) THEN
tempHighNum = …Run Code Online (Sandbox Code Playgroud) 我想使用VBScript(经典ASP)查询Active Directory.我怎么能做到这一点?
我想要我的应用程序(用c#编写),它需要在Windows 7上运行并在通知区域中显示一个图标.默认为"仅显示通知"我默认显示我的图标.在c#中寻找api或者为此写一个脚本.如果没有直接的方法可以做到这一点有什么压倒性的方法吗?
我有以下VBScript:
SET Wmi = GetObject("winmgmts:\\.\root\cimv2")
SET QR = Wmi.ExecQuery("SELECT * FROM Win32_Processor")
MsgBox("" & QR.Count)
Run Code Online (Sandbox Code Playgroud)
哪个效果很好.但是,当我查询不存在的内容时:
SET Wmi = GetObject("winmgmts:\\.\root\cimv2")
SET QR = Wmi.ExecQuery("SELECT * FROM Win32_DoesNotExist")
MsgBox("" & QR.Count)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Script: E:\test.vbs
Line: 3
Char: 1
Error: Invalid class
Code: 80041010
Source: SWbemObjectSet
Run Code Online (Sandbox Code Playgroud)
我怎么知道QR对象是否有效?
如果我打电话TypeName(QR),它会说SWbemObjectSet,但是一旦我尝试查询其中一个属性,它就会失败并显示上述消息.
我已经google了这个错误,大多数页面似乎都说"只是不做那个查询"的效果.遗憾的是,这不是一个选项,因为我想在多个版本的Windows上运行相同的脚本,而Microsoft偶尔会在新版本的Windows中弃用WMI类.我希望我的脚本能够优雅地处理它.
我正在尝试自动将文件上载到SharePoint文档库.我遇到了无数的帖子(在这个论坛上和其他人),但似乎无法获得有用的东西.虽然我做了一些简单的VBA和VB脚本,但我并不是真正的开发人员.
我正在寻找的是一个自动上传文件(特别是.xlsx和.zip类型)从本地机器到特定SharePoint文档库的解决方案(让我们使用".../sharepoint/Metrics/Forms/AllItems.aspx "作为列表"使用VBA或VB脚本.
在研究这个问题时,这里有一些其他的想法/评论,希望能帮助某人为我提供解决方案:
预先感谢您的任何帮助.
我正在使用CCur()而不是CDbl()在这个问题中回答:
但我想显示小数位数,例如3应该是3.00,3.555应该是3.55.
如何使用CCur()函数实现此目的?
我知道永久删除徽标的两种方法."官方"一:
cscript //Nologo //S
Run Code Online (Sandbox Code Playgroud)
将为当前用户保存当前命令行选项.
一个ftype具有管理员权限的方法:
ftype wsffile="%SystemRoot%\System32\CScript.exe" //nologo "%%1" %%*
ftype jsfile="%SystemRoot%\System32\CScript.exe" //nologo "%%1" %%*
ftype vbsfile="%SystemRoot%\System32\CScript.exe" //nologo "%%1" %%*
Run Code Online (Sandbox Code Playgroud)
%只有在批处理文件中使用行时才需要使用双精度数.
后者将所有用户通过影响reg键HKEY_CLASSES_ROOT\<file>\Shell\Open\Command,在哪里<file>可以wsffile,jsfile或vbsfile.
你知道存储 cscript //Nologo //S设置的位置吗?
从一些旧的VB代码复制C#中的函数,以对电子邮件文本执行字符串操作.我不确定这是否适用于所有情况......任何人都可以确认我对正确使用的C#代码的看法吗?这些是等价的吗?
原创VB:
function FixText(Mail_Text)
dim Clean_Text
Clean_Text = Mail_Text
Clean_Text = Replace(Clean_Text, "=" & vbcrlf, "")
Clean_Text = Replace(Clean_Text, ";" & vblrcf, "")
` ... other stuff
FixText = Clean_Text
End Function
Run Code Online (Sandbox Code Playgroud)
新C#:
public String FixText(Mail_Text)
{
String Clean_Text = Mail_Text;
Clean_Text = Clean_Text.Replace("=" + System.Environment.NewLine, "");
Clean_Text = Clean_Text.Replace(";" + System.Environment.NewLine, "");
// ... other stuff
return Clean_Text;
}
Run Code Online (Sandbox Code Playgroud) 我已多次搜索此错误代码并已访问多个站点以阅读响应.长话短说,还没有找到解决方案.
引用的一个页面:发送时出错(在vbscript中使用sendkeys的字符
这是我的代码:
set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("C:\Downloads\software\putty.exe -load navstat")
DIM date
date = 301113
DIM tran1
tran1 = TAFFY
set objFSO = CreateObject("Scripting.FileSystemObject")
set objFile = objFSO.OpenTextFile("C:\Users\Adrian\Desktop\Entries1.txt", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
If InStr(strLine, "JFK.GREKI3.MARTN..TOPPS") Then
set indi = 2
set tran1 = TOPPS
End If
Loop
Run Code Online (Sandbox Code Playgroud)
发生了什么:我正在扫描文本字符串的.txt文件(Entries1.txt).如果它们出现,我需要设置相应的indi值(所以当indi稍后用作变量时它将使用正确的#)并更改tran1变量.
出于某种原因,我收到错误:
set objFile = objFSO.OpenTextFile
Run Code Online (Sandbox Code Playgroud)
错误是
无效的过程调用或参数代码:800A0005
非常感谢帮助.
我必须从字符串中提取整数值.
它实际上是一个数量字段.
说字符串可以是000000000000512或者0000040000000
我只想要来自该字符串的整数值即; 512/4000000
请在VB脚本中帮助解决这个问题
vbscript ×10
asp-classic ×2
c# ×2
file-upload ×1
scripting ×1
sharepoint ×1
windows-7 ×1
wmi ×1
wsh ×1