2013-08-22 2 views
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 
+1

Разве вы не можете сделать наоборот? Заменить всю VBS на пакет? –

ответ

1

cmd Execute:

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).

Смежные вопросы