在 Join(Array()) 中连接变量 + 字符串
Concatenate variable + string inside of a Join(Array())
我有下面的脚本,可以引用两个文件名,第二个文件名存在于 ""
之间的 Join(Array())
内,但我需要使用一个已经存在的文件夹名称之前在变量中定义,用于在此文件夹中创建一个新文件,该文件将存储此脚本产生的最终结果:
Option Explicit
Const LOCAL_APPLICATION_DATA = &H1c&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_APPLICATION_DATA)
Set objFolderItem = objFolder.Self
Set colItems = objFolder.Items
Dim sCurDir
Dim sFina
For Each objItem in colItems
If InStr(1, objItem.Name, "Google") > 0 Then
sCurDir = objFolderItem.Path + "\" + objItem.Name + "\Chrome\User Data\Default\"
sFina = "History"
Exit For
End If
Next
Function qq(s) : qq = """" & s & """" : End Function
Const cnHidden = 0
Const cbWait = True
Dim sCmd : sCmd = Join(Array( _
"%comspec%" _
, "/c" _
, "sqlite3.exe" _
, "-csv" _
, qq("..\data\History") _
, qq("SELECT id, url FROM urls LIMIT 5") _
, ">.\urls.csv" _
))
WScript.Echo sCmd
CreateObject("WScript.Shell").Run sCmd, cnHidden, cbWait
WScript.Echo "Done"
然后,如果我尝试将 ">.\urls.csv"
替换为例如 """"+sCurDir + "new.csv"""
,则不会创建文件。怎么解决的?
已解决:
Dim strUser
strUser = CreateObject("WScript.Network").UserName
...
Dim sCmd : sCmd = Join(Array( _
"%comspec%" _
, "/c" _
, "sqlite3.exe" _
, "-csv" _
, qq(sCurDir + sFina) _
, qq("SELECT url FROM urls") _
, ">C:\Users\"+strUser+"\AppData\Local\Google\Chrome\new.csv" _
))
我有下面的脚本,可以引用两个文件名,第二个文件名存在于 ""
之间的 Join(Array())
内,但我需要使用一个已经存在的文件夹名称之前在变量中定义,用于在此文件夹中创建一个新文件,该文件将存储此脚本产生的最终结果:
Option Explicit
Const LOCAL_APPLICATION_DATA = &H1c&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_APPLICATION_DATA)
Set objFolderItem = objFolder.Self
Set colItems = objFolder.Items
Dim sCurDir
Dim sFina
For Each objItem in colItems
If InStr(1, objItem.Name, "Google") > 0 Then
sCurDir = objFolderItem.Path + "\" + objItem.Name + "\Chrome\User Data\Default\"
sFina = "History"
Exit For
End If
Next
Function qq(s) : qq = """" & s & """" : End Function
Const cnHidden = 0
Const cbWait = True
Dim sCmd : sCmd = Join(Array( _
"%comspec%" _
, "/c" _
, "sqlite3.exe" _
, "-csv" _
, qq("..\data\History") _
, qq("SELECT id, url FROM urls LIMIT 5") _
, ">.\urls.csv" _
))
WScript.Echo sCmd
CreateObject("WScript.Shell").Run sCmd, cnHidden, cbWait
WScript.Echo "Done"
然后,如果我尝试将 ">.\urls.csv"
替换为例如 """"+sCurDir + "new.csv"""
,则不会创建文件。怎么解决的?
已解决:
Dim strUser
strUser = CreateObject("WScript.Network").UserName
...
Dim sCmd : sCmd = Join(Array( _
"%comspec%" _
, "/c" _
, "sqlite3.exe" _
, "-csv" _
, qq(sCurDir + sFina) _
, qq("SELECT url FROM urls") _
, ">C:\Users\"+strUser+"\AppData\Local\Google\Chrome\new.csv" _
))