1

我有一个执行以下操作的脚本

'Create a bat file
Set objBatFile = objFS.CreateTextFile("X:\" & strType & "\closeit.bat",True)
intExitCode = objBatFile.Write("for /f " & chr(34) & "skip=4 tokens=1" & chr(34) & " %%a in ('net files') do net files %%a /close")
objBatFile.Close
'Run the bat file to close all files in the directory
intExitCode = objShell.Run("X:\" & strType & "\closeit.bat", intWindowStyle, blnWaitOnReturn)
StopStart
'Delete the bat file
Set obj = CreateObject("Scripting.FileSystemObject") 
obj.DeleteFile("X:\" & strType & "\closeit.bat") 'Deletes the file throught the DeleteFile function

我想知道是否有人知道使用 vbscript 替换我用来关闭服务器上打开文件的 .bat 文件命令的方法?为了更清楚起见,我要替换的行如下:

for /f " & chr(34) & "skip=4 tokens=1" & chr(34) & " %%a in ('net files') do net files %%a /close
4

1 回答 1

1

执行cmd

intExitCode = objShell.Run("CMD.EXE /C for /f ""skip=4 tokens=1"" %a in ('net files') do net files %a /close"), blnWaitOnReturn)

请注意,FOR外部批次需要单个%变量之前。

您可以"+Chr(34)+"只替换""(至少在 VBA 和 VB.NET 中)。

于 2013-08-23T10:20:02.710 回答