Вопрос интересный. На вскидку я вижу два способа:
1) В команде запросить у пользователя строку при помощи Editor.GetString с PromptStringOptions.AllowSpaces == true (т.к. в имени файла могут быть пробелы). Желательно заменить в имени файла "\\" на "/" - обычно это уменьшает количество проблем.
String dwgFile = "C:/TestDir/001.dwg";
String inst = "(progn (command \"_netload\" \"C:/Project/AutoCadRunDll/AcadMyPlugin/bin/Debug/AcadMyPlugin.dll\")" +
"(command \"DeleteBadXref \"" + dwgFile + "\"))\n";
2) Организовать не команду, а lisp-функцию, которая может принимать параметры и передавать в качестве параметра путь к файлу:
http://docs.autodesk.com/ACD/2013/ENU/files/GUID-3B2760FE-A0DC-4229-AEBE-5CC83290BA95.htm (если версия AutoCAD более свежая чем 2006)
Функция будет выглядеть приблизительно так:
[LispFunction("DeleteBadXref")]
public void DeleteBadXref(ResultBuffer args)
{
// Здесь то что ты реализовывал в команде DeleteBadXref, но
// args содержит (если ты передал) путь к dwg-файлу
}
И соотвественно вызов её будет выглядеть приблизительно так:
String dwgFile = "C:/TestDir/001.dwg";
String inst = "(progn (command \"_netload\" \"C:/Project/AutoCadRunDll/AcadMyPlugin/bin/Debug/AcadMyPlugin.dll\")" +
"(DeleteBadXref \"" + dwgFile + "\"))\n";