Я использую следующий код, чтобы открыть несколько файлов в существующем сетевом сопоставленном каталоге.
pushd \\networkdirectory\subfolder
start file1.xlsx
start file2.xls
Проблема в том, что, поскольку я использую pushd
, он отображает временный каталог UNC, а затем, когда я пытаюсь сохранить файл .xlsx в Excel после внесения изменений, он говорит
'Z:\\networkdirectory\subfolder' cannot be found
Любые идеи?
pushd
создает временный диск для путей UNC и изменяет его как текущий рабочий каталог; а может попробовать start "" /D . file1.xlsx
?
Файл хранится в сети, а не локально, и у меня нет доступа для изменения сети. Все, что я хочу сделать, это открыть файл с помощью файла .bat и сохранить его в сети. Мне не нужен временный диск, я хочу использовать существующий сетевой диск.
Затем используйте существующий сетевой диск. pushd "<ExistingNetworkDrive>:\subfolder"
или cd /d "<ExistingNetworkDrive>:\subfolder"
или start "" "<ExistingNetworkDrive>:\subfolder\file1.xlsx"
Спасибо Mofi, что решил это! Хотел бы я дать вам за это баллы. : /
Команда PUSHD с включенными по умолчанию расширениями команд создает временную букву диска, которая указывает на сетевой ресурс, указанный с помощью UNC-пути, начинающийся с буквы диска Z:
, если он еще не используется. Такое поведение объясняется с помощью вывода команды PUSHD, запущенной в окне командной строки pushd /?
. Тогда каталог с временной буквой диска становится текущим каталогом.
Это часто желаемое поведение в данном случае является контрпродуктивным, поскольку два файла Excel без пути загружаются с использованием текущего пути к каталогу в Microsoft Excel, запущенном два раза как параллельный процесс. Таким образом, командный процессор Windows сразу же продолжает обработку пакетного файла после двойного запуска Excel с двумя файлами в текущем каталоге. Исходный текущий каталог перед выполнением PUSHD восстанавливается с удалением временной буквы диска Z:
, хотя Excel все еще работает с двумя открытыми файлами. Это приводит к появлению сообщения об ошибке при последующем сохранении файлов Excel.
Решение состоит в том, чтобы опустить команду PUSHD, поскольку у Excel нет абсолютно никаких проблем с открытием файла, указанного в командной строке с UNC-путем.
start "" "\\networkdirectory\subfolder\file1.xlsx"
start "" "\\networkdirectory\subfolder\file2.xls"
Первая строка аргумента в двойных кавычках интерпретируется командой НАЧАЛО как необязательный заголовок для окна командного процесса. Так что необходимо явно указать строку заголовка. В этом случае с помощью ""
указывается пустая строка заголовка, поскольку Excel является приложением Windows GUI, и поэтому никакой командный процесс Windows с дополнительным окном консоли не открывается вообще. Запустите в окне командной строки start /?
для получения справки по команде НАЧАЛО.
Почему бы не сопоставить это место с чем-то более постоянным, взгляните на
Net Use
.