Выполнить пакетный файл на отдельном томе — система не может найти указанный путь

У меня есть пакетный файл, который выполняет другой пакетный файл с парой аргументов командной строки. Это команда:

call "C:/Program Files (x86)/salesforce.com/Data Loader/bin/process.bat", "D:/Scripts/CS Dashboard/DataLoader", "casesByCategory_LM"

Моя проблема в том, что при выполнении появляется сообщение "Система не может найти указанный путь". Я понимаю, что это потому, что я указываю путь к файлу на отдельном диске D:

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

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


process.bat — это файл, предоставленный мне SalesForce для использования их DataLoader. Это содержимое:

@echo off
if not [%1]==[] goto run
echo.
echo Usage: process ^<configuration directory^> ^[process name^]
echo.
echo      configuration directory -- directory that contains configuration files,
echo          i.e. config.properties, process-conf.xml, database-conf.xml
echo.
echo      process name -- optional name of a batch process bean in process-conf.xml,
echo          for example:
echo.
echo              process ../myconfigdir AccountInsert
echo.
echo          If process name is not specified, the parameter values from config.properties
echo          will be used to run the process instead of process-conf.xml,
echo          for example:
echo.
echo              process ../myconfigdir
echo.

goto end

:run
set PROCESS_OPTION=
if not [%2]==[] set PROCESS_OPTION=process.name=%2

..\Java\bin\java.exe -cp ..\dataloader-29.0.0-uber.jar -Dsalesforce.config.dir=%1 com.salesforce.dataloader.process.ProcessRunner %PROCESS_OPTION%

:end

person Ryan McClure    schedule 30.07.2014    source источник


Ответы (1)


Удалите запятые и используйте обратную косую черту в качестве разделителя пути.

call "C:\Program Files (x86)\salesforce.com\Data Loader\bin\process.bat" "D:\Scripts\CS Dashboard\DataLoader" casesByCategory_LM

Если это не сработает, вы должны опубликовать свой код process.bat

person MC ND    schedule 30.07.2014
comment
Хм, я попробовал, и все равно выдает ту же ошибку. - person Ryan McClure; 30.07.2014
comment
@RyanMcClure, если предположить, что файл находится по указанному пути, проблема, вероятно, внутри process.bat - person MC ND; 30.07.2014
comment
@RyanMcClure, код в файле process.bat использует относительные пути для доступа к необходимым файлам. Если текущая папка не соответствует требованиям, файлы не будут найдены. Может быть, cd /d "C:\Program Files (x86)\salesforce.com\Data Loader\bin" перед call заставит это работать - person MC ND; 30.07.2014