Bat - файл для открытия excel с параметрами-пробелами

Я хотел бы запустить Excel, открыть в нем определенный файл и передать аргументы в этот файл.
Мой звонок

"C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" 
"D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm"
/e"D:DesktopMyFile.dia"

и это работает так, как я хочу.

однако, когда параметр файла Excel (MyFile.dia) содержит пробел, все разрушено, независимо от цитат. Сообщение об ошибке, что файл".Диа" не найдено.

как я могу решить это? Справка MS не помогает.

изменить:

реагирует Комментарии Дэйва, я пробовал:

"C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE"
"C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm"
"C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm" "D:DesktopMyFile.dia"
"C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm" "D:DesktopMyFile .dia"

и все работает нормально. Проблема начинается когда я пытаюсь включить /e переключатель для передачи аргументов в Excel. Именно. ..

 "C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm" /e "D:DesktopMyFile.dia"
 "C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm" /e "D:DesktopMyFile. dia"

они не производят никаких ошибок, проблема в том, что Excel не понимает, что последний файл является то, что я хотел бы передать файл xlsm, а не другой файл, который будет открыт в Excel. Сказать об этом Excel .dia должен быть параметром, обрабатываемым .xlsm, единственное, что я нашел, чтобы работать было удаление пробелов вокруг "/ e". Отсюда

 "C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm"/e"D:DesktopMyFile.dia"

работает по назначению, однако

 "C:Program Files (x86)Microsoft OfficeOffice14EXCEL.EXE" "D:Desktoplibsxlam+apps+diagramViewerdiagramViewer.xlsm"/e"D:DesktopMyFile .dia"

результаты в Excel пытается открыть ".dia "файл, приводящий к сообщению об ошибке".файл dia не существует...".

29
задан steadyfish
22.03.2023 8:41 Количество просмотров материала 3037
Распечатать страницу

3 ответа

ошибка должна быть ваш путь на самом деле не ссылаясь на то, что вы думаете, что это или, проблема с локали может быть, или как он распознает символы...

Я просто создал следующую

"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" "C:\Users\DRook\Desktop\a d c.xlsx"/e "C:\Users\DRook\Desktop\My File . dia"

это работает, как ожидалось (т. е. нет сообщения об ошибке) из командной строки и .Bat-файл.

Я подозреваю, что файл не ссылается правильно некоторые, как или что ваш может иметь некоторые настройки локали, которая путает его!

чтобы быть уверенным (просто чтобы исключить это), найдите MyFile.dia и переименовать его My File . dia в Проводнике. Затем, с помощью shift кнопка удерживается, щелкните правой кнопкой мыши файл (файл.dia) и выберите опцию Copy as path

затем вставьте его в качестве последнего параметра команды.

помните, если вы не создали эту строку самостоятельно и скопировали и вставили ее из другого источника, " метки могут не делать то, что вы думаете. Я предлагаю вам переписать всю строку, а затем проверить его. Или скопируйте мой строка выше и проверить, что, просто переименовать пути.

If D: не является локальным диском, тогда я предлагаю протестировать все на вашем рабочем столе (или, по крайней мере, локальное местоположение, где у вас не будет проблем с сетью или разрешениями).

Я даже пробовал его с подобной структурой каталогов, и он отлично работает.

enter image description here

Edit

Я также попытался бы каждый параметр по одному, чтобы обеспечить путь является правильным. Итак, в командной строке введите

"C:\Program файлы (x86)\Microsoft Office\Office14\EXCEL.EXE " и нажмите введите

затем

"D:\Desktop\libs\xlam + приложения+diagramViewer\diagramViewer.файл xlsm" и нажмите введите

затем

"D:\Desktop\MyFile.Диа" и нажмите клавишу введите

затем

"Файл D:\Desktop\My . Диа" и нажмите введите

Edit 2

хорошо, теперь я могу лучше видеть / понимать неисправность, но предлагаю только 1 решение, которое является решением, которое вы не хотите - не допускайте пробелов.

что происходит, когда я посылаю пробел в параметре, я получаю следующее сообщение от Excel (обратите внимание, мой параметр e/"C:\Users\DRook\Desktop\My File . dia")

enter image description here

Примечание, то проблема Excel, как представляется, замена пробелов с extension (поэтому смотрите пустое пространство, предполагает, что это конец имени файла и создает расширение).

1
отвечен Dave 2023-03-23 16:29

Я смотрел на что-то подобное, но хотел использовать макрос в открытом файле XLSM для автозапуска, если передан параметр.

есть долгая дискуссия на http://www.vbforums.com/showthread.php?366559-Excel-How-to-Pass-Command-Line-Parameter-DKenny-is-KING

об этом предмете.

то, что я сделал, это использовать предложение в посте #19 (интересно, что VB (6) "команда" не работает в офисных приложениях, которые у меня есть проверено.) Что я делаю, это использовать пакетный файл для запуска Excel: -

Set ExcelArgs=AutorunMacros
"C:\Program Files (x86)\Microsoft Office\Office14\excel.exe" /e "C:\Path to\Excel File\Analyser Program.xlsm" 

затем в книге макросов у меня есть следующее (Нажмите на вкладку" книга " в проекте

Private Sub Workbook_Open()
Dim ExcelArgs As String
ExcelArgs = Environ("ExcelArgs")
If Lcase (ExcelArgs)= "autorunmacros" Then
    Call StartMyMacro(Auto:=True)
End If
End Sub

StartMyMacro - это то, чего вы хотите достичь автоматически.

кроме того, мой StartMyMacro определяется следующим образом

Public Sub StartMyMacro(Optional Auto As Boolean = False)

, который при вызове вручную имеет значение Auto False, а при вызове из автоматического открытия значение переменной True. В конце концов, с Auto=True, я сохраняю книгу (фактически новую, созданную во время макроса), а затем выхожу из Excel. В результате окно CMD закрывается, а переменная среды очищается.

1
отвечен RadioPlanner2013 2023-03-23 18:46

мы столкнулись с подобной проблеме. Мы в конечном итоге переименование файла xlsm. Возникла проблема с кодировкой имени файла.

0
отвечен Simple guy 2023-03-23 21:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх