【问题标题】:Close all files in a shared directory关闭共享目录中的所有文件
【发布时间】:2013-08-22 23:34:40
【问题描述】:

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

'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

【问题讨论】:

  • 你不能做相反的事情吗?用批处理替换整个 VBS?

标签: windows batch-file vbscript


【解决方案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 中)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2014-08-20
    • 1970-01-01
    相关资源
    最近更新 更多