我有一个ASP页面,它有很多日期变量.
myvariable = FormatParameter("EndDate")
Run Code Online (Sandbox Code Playgroud)
EndDate是"10/01/2001"
如何从日期变量中删除双引号?所以它可以是10/01/2001.
我可以在.NET中执行此操作但无法找到在ASP中执行此操作的方法.
任何帮助是极大的赞赏.
我在Google Chrome中拥有大量书签.我想将它们全部转移到一个Windows文件夹,以便每个书签都是网站的快捷方式(我想要一个快捷方式列表,就像任何常规应用程序快捷方式列表一样).我还想保留书签的名称和图标.
我搜索了一种实现目标的方法,但我能找到的只是手动 Create application shortcuts在Chrome中,或者手动将从Chrome书签管理器中的书签导出的HTML文件中的链接拖放到文件夹中.
由于没有简单的解决方案(AFAIK),我想到了以另一种方式实现它.
基本上,我所拥有的是一个叫做的HTML文件bookmarks.html(由菜单里面的Export bookmarks to HTML file功能创建.这是一个很长的链接列表- 我有超过250个书签. OrganizeBookmark Manager<a>
我可以轻松地从文件中提取我需要的数据,可能是使用XML Parser,尽管它甚至可以使用正则表达式,因为结构是已知的并且在整个文件中是相同的:
...
<DT><A HREF="http://data.stackexchange.com/" ADD_DATE="1342120101" ICON="data:image/png;base64,iVBORw0......">Stack Exchange</A>
<DT><A HREF="http://www.istockphoto.com/" ADD_DATE="1285715116" ICON="data:image/png;base64,iVBORw0.......">Web Design</A>
<DT><A HREF="http://icons.mysitemyway.com/" ADD_DATE="1287435657" ICON="data:image/png;base64,iVBORw0........">Ico.etc</A>
<DT><A HREF="http://www.shutterstock.com/" ADD_DATE="1285715294" ICON="data:image/png;base64,iVBORw0.....">Shutterstock</A>
...
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何创建一个可以获取数据的脚本 - 即URL,图标(在base64中)和名称 - 并使用该数据制作Windows URL快捷方式.我知道很少有VB脚本可以创建自定义快捷方式,但不能同时创建多个(大约300个)快捷方式.
为什么在VBScript中将单元格值写入Excel要比在PowerShell中快得多?PowerShell不是新东西,而VBScript是不推荐使用的MS脚本语言吗?
VBScript示例(保存到filename.vbs) 这是一瞬间运行.
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = false
Set objWorkbook = objExcel.Workbooks.Add()
' Edit: increased number of writes to 500 to make speed difference more noticeable
For row = 1 To 500
'Edit: using .cells(row,1) instead of .cells(50,1) - this was a mistake
objWorkbook.workSheets(1).cells(row,1).value = "test"
Next
objWorkbook.SaveAs(CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName) & "\test.xlsx")
objExcel.Quit
msgbox "Done."
Run Code Online (Sandbox Code Playgroud)
PowerShell示例(保存到filename.ps1)这需要几秒钟才能运行(数千条记录存在问题)
#need this to work around bug if you use a non-US locale: http://support.microsoft.com/default.aspx?scid=kb;en-us;320369
[System.Threading.Thread]::CurrentThread.CurrentCulture = "en-US"
$excel = New-Object -ComObject Excel.Application
$excel.Visible = …Run Code Online (Sandbox Code Playgroud) 当我手动替换图标时(即不从资源管理器中的"文件夹选项"窗口),图标不会更新.例如,如果我执行此批处理代码:
REG ADD HKCR\testfile\DefaultIcon /ve /d "C:\test.ico,0" /f
Run Code Online (Sandbox Code Playgroud)
图标显示在"文件夹选项"的列表中应该显示,但图标不会在桌面或资源管理器中更新.
如果我只是点击任何文件类型的"更改图标"按钮并退出"文件夹选项"窗口,则会更新图标.但据我所知,这不能通过批处理或VBS完成.
重新启动explorer.exe可以正常工作,但如果我这样做,任务栏中的应用程序选项卡由于某种原因变得有问题(例如:当应用程序最大化时,我不能只是左键单击任务栏中的选项卡以最小化它 - 我必须直接点击它并点击最小化...).更不用说,如果我这样做,所有打开的资源管理器窗口都将关闭,这有点麻烦.
我还有一个TuneUp Utilities的副本,它有一个重新加载图标缓存的选项,这确实像预期的那样工作.但是再一次,我无法通过批处理或VBS访问此工具.它不会重新启动explorer.exe或删除任何文件(如某些解决方案).我敢肯定的这一点,因为我没有iconcache.db文件的任何地方我的操作系统驱动器上.
我也尝试通过VBS添加注册表项,但这没有帮助.
欢迎任何批处理或VBScript解决方案!
我想使用ADO Stream从UTF-8编码的本地大文本文件中读取行,所以我试试
Set objStream = CreateObject("ADODB.Stream")
objStream.Charset = "utf-8"
objStream.Type = 2
objStream.Open
objStream.LoadFromFile = strFile
objStream.LineSeparator = 10
Do Until objStream.EOS
strLine = objStream.ReadText(-2)
Loop
Run Code Online (Sandbox Code Playgroud)
但结果是脚本需要大量的RAM和CPU使用.那么有没有办法告诉脚本不要将所有文件内容加载到内存中,只是打开它并读取,直到它遇到任何行分隔符?
这是一个很好的疯狂发现:
Option Explicit
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=41"
ExecuteGlobal "Option Explicit: TestVar=42"
MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)
按预期工作 - 显示42.
和:
Option Explicit
ExecuteGlobal "Option Explicit: TestVar: TestVar=41"
MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)
由于未定义TestVar,因此在ExecuteGlobal调用中产生"未定义的变量".好.
我不明白的是:
Option Explicit
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=41"
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=42"
MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)
不会不扔在第二"标识符重新定义" ExecuteGlobal呼叫,但显示42 -如同Dim在第二ExecuteGlobal呼叫中不存在.
如果你对Class声明做同样的事情,一切正常,即你无法在任何情况下重新定义一个类.
我勒个去?
我的问题是:为什么ExecuteGlobal允许我重新定义一个全局变量,而a)ExecuteGlobal禁止访问未声明的变量,b)类定义被区别对待?
我确实有一个导致这种情况的用例(在测试运行时生成源代码并通过ExecuteGlobal执行它,因为某些不那么奇怪的因为你可能期望的原因),但我刚刚提出的要点是有效的,没有我认为现实世界的情景描述.
我使用QTP(HP QuickTest Professional)来解决这个问题,它使用VisualBasic脚本主机引擎进行脚本回放,但它只与VB脚本主机完全相同.
我想每5分钟运行一次PHP脚本,所以我创建了VBScript,这个VBScript将启动PHP应用程序,这个VBScript将在控制面板的Scheduler任务中配置.计划作业从未运行过以下错误代码An instance of this task is already running. 0x8004131F.
更新说明:
终于今天我已经确定了调度问题.我有两个用户,两个用户都有相同的权限(管理员).考虑user1,user2.
当我在user1下安排SCRIPT时.脚本将按计划时间自动启动.
但是当我在user2下安排SCRIPT时.脚本不会运行.我也被提到了错误."此任务的实例已在运行.0x8004131F".
这个问题仍未解决.
该脚本不是由我编写的 - 它是用于Foobar2000的.vbs脚本
https://gist.github.com/rornor/4d06d0994c1b8ae61ef5
该脚本查询soundcloud.api并获取基于用户或组的歌曲列表.弹出一个对话框并询问用户名,搜索词,组或URL,它会将一组歌曲加载到一个临时的.pls文件中,该文件在关闭播放器后删除.我对.vbs的经验不多,所以我不能提供太多信息,但我可以在这里给出脚本:
对话截图:
我想建立一个像网站那样的相关播放列表,所以我选择了一首歌,然后将相关歌曲列表加载到我的Foobar播放列表中.是否有一个我可以加载的特定网址,所以它可以做到这一点,或者我可以从API加载某个地方吗?
我写了下面的vbs打开ciphergraph:
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("""C:\Program Files (x86)\CipherGraph\LaunchStub.exe""")
Set objShell = Nothing
WScript.Sleep 250
Run Code Online (Sandbox Code Playgroud)
我还想在密码图窗口中选择"连接"按钮 - 我可以通过两次点击'TAB'然后在应用启动时'返回'来实现它
我该怎么做呢?对不起,如果这是一个基本问题,VBS新手,但找不到答案?
干杯
我已经成功使用清单文件(即早期绑定)使用C ++和C#成功运行了Reg-Free COM。我现在正尝试使用后期绑定使此工作正常。经过大量的网络搜索,我发现的技术似乎正在使用“ Microsoft.Windows.ActCtx”。
我用来测试此示例的示例是在http://msdn.microsoft.com/zh-cn/library/ms973913.aspx上找到的MS的“基于COM的组件的免注册激活”,以生成SideBySide示例。然后,我尝试使用脚本语言。但是,VBScript和Python都以相同的方式失败(也尝试过VBA)。下面给出了VBScript示例:
Set actctx = CreateObject("Microsoft.Windows.ActCtx")
actctx.manifest = "C:\test\client.exe.manifest"
Set SBSObj = actctx.CreateObject("SideBySide.SideBySideClass")
wscript.echo SBSObj.Version
Run Code Online (Sandbox Code Playgroud)
使用SysInternals的“ Process Monitor”之类的东西,您可以看到运行以下命令(Windows 7 x64):
C:\Windows\SysWOW64\cscript.exe //Nologo C:\test\VBRegFreeTest.vbs
Run Code Online (Sandbox Code Playgroud)
似乎可以通过加载清单来工作,并尝试开始寻找等效的注册表调用,但找不到它们。因此,它似乎部分起作用。我还将wScript.exe复制到本地目录中,以排除运行应用程序和清单文件的目录问题。
我已经阅读了Windows Xp上的Microsoft.Windows.ActCtx,并在清单中包含了“ prodID”,但仍然失败。清单文件可与C ++和C#示例一起正常使用。
我忍不住感觉到“ Microsoft.Windows.ActCtx”有问题。关于此的文档非常有限。非常感谢在Python或VBScript中使用清单文件的任何帮助。我想知道是否有人可以使用“ Microsoft.Windows.ActCtx”。
vbscript ×10
asp-classic ×2
windows ×2
ado ×1
batch-file ×1
bookmarks ×1
c# ×1
c++ ×1
excel ×1
html ×1
optimization ×1
php ×1
powershell ×1
python ×1
soundcloud ×1
windows-xp ×1