Paul Li Posted Sunday at 05:09 PM Posted Sunday at 05:09 PM Attached is an improved version of getfiled that implements powershell with the option to select single or multiple files returning a list of the selected item(s): Examples: (pl:getfiledps "Select Files" (getvar"dwgprefix") "dwg" 0) ; for single selection of file type dwg (pl:getfiledps "Select Files" (strcat (getenv "userprofile") "\\downloads") "dwg;dxf" 1) ; for multiple selection of file types dwg & dxf Feedback & comments are welcome. pl_getfiledps.lsp 3 Quote
SLW210 Posted yesterday at 11:40 AM Posted yesterday at 11:40 AM Many work computers are likely limited for using Powershell. Unrelated to Powershell being blocked, I get an error loading. error: string too long on input Quote
Steven P Posted yesterday at 12:06 PM Posted yesterday at 12:06 PM String too long - just a guess, file path and file name string length? - going back old school when we had 256? characters for it all - but just a guess Quote
SLW210 Posted yesterday at 12:28 PM Posted yesterday at 12:28 PM I'm not going to troubleshoot it since Powershell is blocked at work, but if the load has that error, then it's something in the Code, probable in the DCL write-line part. 1 Quote
Paul Li Posted yesterday at 09:11 PM Author Posted yesterday at 09:11 PM Thanks for troubleshooting. That could definitely be caused by having a write-line statement that's way too long. I've made the changes to reduce the write-line on the dcl. Kindly troubleshoot some more for offices that do allow for running powershell with the attached revised version...thanks in advance. pl_getfiledps.lsp Quote
GLAVCVS Posted 23 hours ago Posted 23 hours ago (edited) One observation: in older versions of AutoCAD (2000 and 2002, at least), 'vla-get-HWND' applies to the Document object rather than the Acad object. Edited 23 hours ago by GLAVCVS 1 Quote
BIGAL Posted 23 hours ago Posted 23 hours ago (edited) Works great often do old fashioned DOS to get file names list or use the VL files functions. A suggestion remove "result" from the local variables list. As the answer disappears. Or ; Example: ; (setq files (pl:getfiledps "Select Files" (getvar"dwgprefix") "dwg" 1)) A side comment I have used Powershell with Bricscad and sometimes does not work. Your code may help as you do a deeper dive into running Powershell. I generally only do a "Power shell and script" I have used it to change programs, I jump to Excel from CAD. Edited 23 hours ago by BIGAL 1 Quote
Paul Li Posted 6 hours ago Author Posted 6 hours ago On 9/14/2026 at 5:28 AM, SLW210 said: I'm not going to troubleshoot it since Powershell is blocked at work, but if the load has that error, then it's something in the Code, probable in the DCL write-line part. Could you test if this PowerShell-p function would return nil on your powershell blocked computers? ; PowerShell-p function to check if powershell is available to run...Returns T if available (defun PowerShell-p (/ shell result) (setq shell (vlax-create-object "WScript.Shell") result (vl-catch-all-apply 'vlax-invoke-method (list shell 'Run "powershell.exe -NoProfile -Command \"exit 0\"" 0 T)) ) (vlax-release-object shell) (and (not (vl-catch-all-error-p result)) (= result 0) ) ) Quote
Paul Li Posted 6 hours ago Author Posted 6 hours ago 17 hours ago, GLAVCVS said: One observation: in older versions of AutoCAD (2000 and 2002, at least), 'vla-get-HWND' applies to the Document object rather than the Acad object. so does the pl:getfiledps function still run properly on those older AutoCAD versions? Quote
SLW210 Posted 1 hour ago Posted 1 hour ago 21 hours ago, GLAVCVS said: One observation: in older versions of AutoCAD (2000 and 2002, at least), 'vla-get-HWND' applies to the Document object rather than the Acad object. 4 hours ago, Paul Li said: so does the pl:getfiledps function still run properly on those older AutoCAD versions? Yes, I was working on that for my home computer with 2000i. Since I had some home time today with AutoCAD 2000i, I did some updating to your code. Seems to work great with minimal testing. Here is my Test Code... ; ================================================================ ; Test command ; ================================================================ (defun c:SelectDWGs (/ files) (setq files (pl:getfiledps "Select DWG Files" (getvar "DWGPREFIX") "dwg" 1 ) ) (if files (progn (princ "\nSelected files:" ) (foreach file files (princ (strcat "\n" file ) ) ) ) (princ "\nNo files selected." ) ) (princ) ) pl_getfiledps_2000i.lsp 1 Quote
Paul Li Posted 1 hour ago Author Posted 1 hour ago @SLW210 Your revised version works beautifully and can now support older versions of AutoCAD...thanks a bunch!!! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.