找回密码
 加入
搜索
查看: 4727|回复: 11

[系统综合] 在@userprofiledir目录中执行sed.exe ,无任何响应,请各位帮忙看看。- [已解决]

[复制链接]
发表于 2009-8-18 14:17:12 | 显示全部楼层 |阅读模式
本帖最后由 linmi 于 2011-2-15 07:26 编辑
$art_files_path = IniRead(@UserProfileDir & "\setting.ini", "location", "path", "NotFound")
$art_temp_path = IniRead(@UserProfileDir & "\setting.ini", "location", "path", "NotFound") & "\temp" & @MDAY

if FileExists($art_temp_path) Then
        DirRemove($art_temp_path,1)
        DirCreate($art_temp_path)
Else
        DirCreate($art_temp_path)
EndIf

$message = "按 Ctrl or Shift 键 可多选 ."

$select_art_files = FileOpenDialog($message, IniRead(@UserProfileDir & "\setting.ini", "location", "path", "NotFound") & "", "Art文件 (*.art)", 1 + 4 )

If @error Then                                                                
    MsgBox(4096,"","无文件")        
;-----------------------------------------------------------------------------------
Else                                                                                
        $files = StringSplit($select_art_files,"|")
        If $files[0] > 1 Then
                For $k = 2 To $files[0]
                        $art_full_path = $files[1] & "" & $files[$k]  ;源文件的真实路径
                        FileCopy($art_full_path,$art_temp_path) ;拷贝文件至临时目录
                        FileSetAttrib ($art_temp_path & "" & $files[$k] , "-R") ;去除ART文件的只读属性
                        $file_name = $art_temp_path & "" & $files[$k]
                        $software_sed = @UserProfileDir & "\tools\sed.exe"
                        ;取消空行
                        RunWait(@ComSpec & " /c " & '"' & $software_sed & '"' & " -e ""/^ *$/d"" "  & $file_name & " > " & $art_temp_path & "\art_temp.rtf","",@SW_HIDE)
                Next
        EndIf
EndIf
RunWait(@ComSpec & " /c " & '"' & $software_sed & '"' & " -e ""/^ *$/d"" "  & $file_name & " > " & $art_temp_path & "\art_temp.rtf","",@SW_HIDE)  <----- 在@userprofiledir目录下执行sed.exe,则无任何反应。将sed.exe放至路径中不带空格的目录中则正常。我也尝试用“”将路径括起来,但均无反应。请各位高手帮我指正一下上面的程序到底是哪里出错了。 谢谢!
 楼主| 发表于 2009-8-19 21:54:43 | 显示全部楼层
难道这是@USERPROFILE的BUG吗?有谁碰到过类似的情况啊。
发表于 2009-8-19 23:17:16 | 显示全部楼层
用'"' 括起两边应该可以的。。。可能你没写对
 楼主| 发表于 2009-8-21 21:27:37 | 显示全部楼层
我尝试过加括号和不加括号两种方法,但都不行。
RunWait(@ComSpec & " /c " & '"' & $software_sed & '"' & " -e ""/^ *$/d"" "  & $file_name & " > " & $art_temp_path & "\art_temp.rtf","",@SW_HIDE)
此句中我已经用上括号(红色部分字符)了。
如果知道怎么写的,请告诉我一声,谢谢!^_^
发表于 2009-8-21 21:50:24 | 显示全部楼层
建议把里面的变量一个一个的MsgBox出来,再组合到一块,看路径是否正确.
发表于 2009-8-21 22:33:41 | 显示全部楼层
还要试试加工作目录
发表于 2009-8-22 06:12:36 | 显示全部楼层
cmd下只认 " , 不认 ' .AU3则可以都认到。试下下面的代码
Run(@ComSpec & ' /k ' & 'dir /b/s ' & '"' & @StartMenuCommonDir & '"', '', @SW_SHOW)
@StartMenuCommonDir = C:\Documents and Settings\All Users\「开始」菜单
发表于 2009-8-22 11:50:15 | 显示全部楼层
在一个命令行里混用单引号、双引号和双双引号。。。头晕了。。。
RunWait(@ComSpec & ' /c "' & $software_sed & '" -e "/^ *$/d" "' & $file_name & '" > "' & $art_temp_path & '\art_temp.rtf"', "", @SW_HIDE)
试试吧。
在cmd下,如果路径包含空格,一定要使用双引号"。
 楼主| 发表于 2009-8-25 22:23:21 | 显示全部楼层
本帖最后由 linmi 于 2009-8-25 22:26 编辑

太感谢各位了。
近来较忙,都没时间上来看看。真不好意思。
前面路径变量等都没问题的。已经测试过的。
问题主要就出在路径中含有空格上。
其实,' " ' 这个不是双“号来的。是‘ ” ’来的。主要是起反定义用的。
 楼主| 发表于 2009-8-27 16:43:00 | 显示全部楼层
在一个命令行里混用单引号、双引号和双双引号。。。头晕了。。。
RunWait(@ComSpec & ' /c "' & $software_sed & '" -e "/^ *$/d" "' & $file_name & '" > "' & $art_temp_path & '\art_temp.rtf"', "", @SW_HIDE)
...
sensel 发表于 2009-8-22 11:50


" /c " 是要用双引号的。
所以,上面的命令还是执行不了的。

谢谢这位兄弟。
 楼主| 发表于 2009-8-27 16:44:25 | 显示全部楼层
cmd下只认 " , 不认 ' .AU3则可以都认到。试下下面的代码
Run(@ComSpec & ' /k ' & 'dir /b/s ' & '"' & @StartMenuCommonDir & '"', '', @SW_SHOW)
@StartMenuCommonDir = C:\Documents and Settings\All Users\「 ...
bing614 发表于 2009-8-22 06:12


执行DOS命令是没问题。但执行SED时却是不行的。
谢谢!
 楼主| 发表于 2009-9-4 09:07:02 | 显示全部楼层
本帖最后由 linmi 于 2011-2-15 07:22 编辑

  可以支持含有空格的路径了,终于可以结贴了。
RunWait(@ComSpec & ' /c ' & '"' & $software_sed & " -e ""/^ *$/d"" "  & $file_name & " > " &'"'& $rep_temp_path & "\rep_temp.rtf" &'"'& '"',"",@SW_HIDE)
谢谢各位XDJM的支持和帮忙!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 17:44 , Processed in 0.089779 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表