rm不是内部命令或可执行文件或批处理文件什么的,何解?
使用以下代码自动清除指定后缀的文件,DOS窗口提示rm不是内部命令或可执行文件或批处理文件什么的,何解?axlCmdRegister( "cam clear" 'camclear?cmdType "general")
defun( camclear ()
shell("rm./*,*")
shell("rm./*.log")
shell("rm ./art_aper.txt")
shell("rm ./art_param.txt")
shell("rm ./nc_param.txt")
shell("rm ./*.val")
shell("rm ./*.tag")
shell("rm ./*.tap")
shell("rm ./*.art")
shell("rm ./*.jrl")
shell("rm ./*.out")
shell("rm ./*.afa")
printf("\n###On current directory *,* *,log*.val *.tag *.tap *.art *.jrl \n")
printf("###nc_param.txt art_param.txt art_aper.txt *.out *.afa\n###CLEAR is finished ====\n")
);end-defun camclear
本帖最后由 XYX365 于 2014-9-23 11:21 编辑
我已寫好一個skill,如下供參考
axlCmdRegister( "cam clear" 'fnCamClear)
procedure(fnCamClear()
let((lDeleteFile tFile x tFileName)
;讀取目前工作目錄下的檔案為下列的檔案並刪除
;*.*,**.log*.val *.tag *.tap *.art *.jrl *.out *.afa art_aper.txt art_param.txt nc_param.txt
lDeleteFile = nil ;存放要刪除的檔案名稱
foreach(tFile setof(x getDirFiles(getWorkingDir()) fnCheckFile(x))
lDeleteFile = cons(tFile lDeleteFile)
)
when(lDeleteFile
foreach(tFile lDeleteFile
tFileName = strcat(getWorkingDir() "/" tFile)
when(isFile(tFileName) && isReadable(tFileName)
deleteFile(tFileName)
)
)
)
;printf("\n###On current directory *,* *,log*.val *.tag *.tap *.art *.jrl \n")
;printf("###nc_param.txt art_param.txt art_aper.txt *.out *.afa\n###CLEAR is finished ====\n")
)
)
;此函數的功能是判斷檔案tFileName是否為下列 ,如果是就傳回 t 否則傳回 nil
;*.*,**.log*.val *.tag *.tap *.art *.jrl *.out *.afa art_aper.txt art_param.txt nc_param.txt
procedure(fnCheckFile(tFileName)
prog((lCheckSuffix lCheckFile lString tSuffix lResult x)
lCheckSuffix = list("afa" "art" "jrl" "log" "out" "tag" "tap" "val" "txt")
lCheckFile = list("art_aper.txt" "art_param.txt" "nc_param.txt")
if(stringp(tFileName) then
tFileName = lowerCase(tFileName)
;判斷檔案名稱只要有 , 就傳回 t
when(rexMatchp("," tFileName)
return(t)
)
when(tFileName == "allegro.jrl" ;此檔案在Allegro執行中是不能刪除的,
return(nil)
)
lString = parseString(tFileName ".")
if(lString then
tSuffix = cadr(lString)
lResult = setof(x lCheckSuffix (x == tSuffix)) ;過濾後綴名稱有一樣
if(lResult then
when(car(lResult) == "txt"
lResult = setof(x lCheckFile (x == tFileName)) ;過濾檔案名稱有一樣
)
if(lResult then
return(t)
else
return(nil)
)
else
return(nil)
)
else
return(nil)
)
else
return(nil)
)
)
) 這侽孓譙悴丶 发表于 2014-9-21 14:05
版主,找不到你说的deleteFile这个函数啊··,能否提供个简单的例子参考下···谢谢啦~
;讀取目前工作目錄下的檔案為1.txt 和 2.art 並刪除這兩個檔案
lDeleteFile = nil
foreach(tFile setof(x getDirFiles(getWorkingDir()) (cadr(parseString(x ".")) == "txt" || cadr(parseString(x ".")) == "art"))
when(car(parseString(tFile ".")) == "1"
lDeleteFile = cons(tFile lDeleteFile)
)
when(car(parseString(tFile ".")) == "2"
lDeleteFile = cons(tFile lDeleteFile)
)
when(lDeleteFile
foreach(tFile lDeleteFile
tFileName = strcat(getWorkingDir() "/" tFile)
when(isFile(tFileName)
deleteFile(tFileName)
)
)
)
) 改 del 就可以, 因為rm是unix XYX365 发表于 2014-9-21 07:27
改 del 就可以, 因為rm是unix
把代码中的rm改成 del 吗? 本帖最后由 這侽孓譙悴丶 于 2014-9-21 09:32 编辑
XYX365 发表于 2014-9-21 07:27
改 del 就可以, 因為rm是unix
xlCmdRegister( "cam clear" 'camclear?cmdType "general")
defun( camclear ()
shell("del./*,*")
shell("del./*.log")
shell("del ./art_aper.txt")
shell("del ./art_param.txt")
shell("del ./nc_param.txt")
shell("del ./*.val")
shell("del ./*.tag")
shell("del ./*.tap")
shell("del ./*.art")
shell("del ./*.jrl")
shell("del ./*.out")
shell("del ./*.afa")
printf("\n###On current directory *,* *,log*.val *.tag *.tap *.art *.jrl \n")
printf("###nc_param.txt art_param.txt art_aper.txt *.out *.afa\n###CLEAR is finished ====\n"));end-defun camclear
改成del也没法删除文件,DOS窗口提示:无效开关-“*”、参数格式不正确-“t_aper.txt”等
楼主为何不用deleteFile函数直接删除文件? vivienluo 发表于 2014-9-21 09:56
楼主为何不用deleteFile函数直接删除文件?
:lol版主终于出现了,这个函数的格式是?没发现这个 vivienluo 发表于 2014-9-21 09:56
楼主为何不用deleteFile函数直接删除文件?
版主,找不到你说的deleteFile这个函数啊··,能否提供个简单的例子参考下···谢谢啦~ deleteFile("e:/1.txt") 删除文件e:/1.txt。
可结合一下一些函数操作目录:
deleteDir, isFile, isDir vivienluo 发表于 2014-9-21 15:18
deleteFile("e:/1.txt") 删除文件e:/1.txt。
可结合一下一些函数操作目录:
deleteDir, isFile, isDir
哪个函数可以删除当前目录下制定的文件呢? 這侽孓譙悴丶 发表于 2014-9-21 15:29
哪个函数可以删除当前目录下制定的文件呢?
:L 这个你就自己多研究研究了。结合参考以下函数。。。
http://www.allegro-skill.com/thread-3588-1-1.html
页:
[1]
2