x163169x 发表于 2011-8-13 15:44:38

关于引号问题,请各位大大求解

$dir=C:\Documents and Settings\Administrator\桌面
$file=aaa
_RunDos("md "&$dir&"\"&$file)

如何正确设置引号,才能创建C:\Documents and Settings\Administrator\桌面\aaa



请各位大大求解谢谢

水木子 发表于 2011-8-13 16:06:35

其实 _RunDos 就是调用的 RunWait 函数

楼主上面的代码只需要将变量 $dir 和 $file的赋值内容引起来就行了。
大概应该是这样吧!

$dir='C:\Documents and Settings\Administrator\桌面'
$file='aaa'
_RunDos("md "&$dir&"\"&$file)

如果使用 _RunDos函数 当然还少不了#include <Process.au3> 库文件

x163169x 发表于 2011-8-13 16:14:04

本帖最后由 x163169x 于 2011-8-13 16:16 编辑

谢谢斑竹帮助,我的环境设置是正常的,关键目录里带有空格需要双引号修饰

我对AU3不是很熟悉,估计他识别的第一个“"” 或者 “'”作为代码识别符,后面可以随之规律变化两两相对
表面看是个引号问题,其实还是格式问题。

修改后格式如下_RunDos('md "'&$dir&'\'&$file&'"')


再次感谢斑竹帮助

lpxx 发表于 2011-8-13 20:16:53

可以这样

        $TEMP=@DesktopCommonDir&"/aaa"
        DirCreate($TEMP)

user3000 发表于 2011-8-14 02:15:14

本帖最后由 user3000 于 2011-8-14 02:38 编辑

你没理解AU3中,单、双引号的使用!
它们是各以最相靠近的两个为一对,作用是一致的,喜欢用哪个就可以用哪个!
dir='C:\Documents and Settings\Administrator\桌面' 也可以书写为 dir="C:\Documents and Settings\Administrator\桌面"
但如果要引用“'”,
应该是“"'"”(2个双引号包住一个单引号)!
如果是引用“"”,
则是是“'"'”(2个单引号包住一个双引号)!

你的命令
_RunDos('md "'&$dir&'\'&$file&'"') (这命令在1楼已经书写正确,但前面2个变量赋值缺少引号!)
是错的,应该是 _RunDos('md ' & $dir & '\' & $file)
空格已经在“md”后面加上了! 
紧接着的变量不能加上任何引号!不然程序将把它看作字符而不是变量了!

还有,要养成个好习惯:连接符和变量间应该像上面一样用空格间开,这利于阅读和排错!

netegg 发表于 2011-8-14 12:28:14

本帖最后由 netegg 于 2011-8-14 12:52 编辑

引号有这么麻烦吗,如果是连续的单双引号就用与之相反的双单引号括起来,如果是单双引号同时且不连续出现, 用相反的双单引号分别括起来并在每组引号(自己加的,不是原有的)中间加&
比如,
"'"不连续的----'"' & "'" & '"'
"""    连续的---- '"""'
如果原字符串一共是偶数个单双引号就拆成奇数的组,同上面注意一下, 如果&前后的符号一致, 可以省略掉 " & " 或者 ' & ')
"'"' -----"'" & '------ '"' & "'" & '"' & "'"
""""-----""" & "------ '"""' & '"'------'""""'

再说的概括点,每一组引号,都拆成一个个的,然后用相反类型的引号括起来,中间加&,然后删除 " & " 或者 ' & '
页: [1]
查看完整版本: 关于引号问题,请各位大大求解