Я писал несколько командных файлов для некоторых конкретных заданий в качестве поддержки рабочего стола.Запуск .VBS из пакетного файла
Я уже несколько месяцев создаю скрипт резервного копирования профиля, меняя его, как нужно, и по мере возникновения новых проблем.
Я пытаюсь запустить следующий скрипт VBS изнутри своего командного файла и указать его вывод в другую папку.
Set oNet= WScript.CreateObject("WScript.Network")
Set oDrives = oNet.EnumNetworkDrives
oUser = oNet.UserName
Set oFilesys = CreateObject("Scripting.FileSystemObject")
Set oFiletxt = oFilesys.CreateTextFile("Mapped_Network_Drives_"&oUser&".cmd", True)
For i = 0 to oDrives.Count - 1
oFiletxt.WriteLine "Net Use " & oDrives.Item(i) & " " & chr(34)& oDrives.Item(i+1) & chr(34) & " /persistent:yes"
Next
oFiletxt.Close
Этот VBS скрипт был сделан (не мной), чтобы экспортировать пользователя Подключенные сетевые диски в CMD файл, который использует netuse команду переназначить их.
Если сценарий VBS запущен сам за пределами командного файла, то он работает нормально, но когда он запускается внутри пакета с использованием cscript и т. Д., Он создает выходной файл Mapped_Network_Drives_% username% .cmd, но это пустой.
REM pushes script to use batch file Drive Letter as working directory
setlocal & pushd %~d0
ECHO =============================
ECHO Creating Backup Folder
ECHO =============================
MD "%UserName%_Backup"
ECHO =============================
ECHO Backing Up Mapped Network Drives
ECHO =============================
REM pushes script to use Backup Folder as working directory
pushd "%~d0%UserName%_Backup"
REM Runs VB script to backup Mapped Network Drives
cscript //nologo "%~dp0Mapped_Network_Drives.vbs"
pause
Выше приведено из кода, с которым я работал.
работает для меня , Подсказка: не забудьте называть 'popd' (дважды) в конце (чтобы быть последовательным). Также на моей машине, где у меня есть только 1 подключенный сетевой диск, 'oDrives.Count' равен 2 (бросая« Подзаголовок вне диапазона », но, возможно, мой WMI испорчен). Итог, пакетный запуск создает файл '.cmd'. – CristiFati