love5173 发表于 2011-2-3 11:51:17

DOS下的>>用au3 怎么写?【已解决】

本帖最后由 love5173 于 2011-4-11 23:59 编辑

DOS下的“>>”命令简洁好用,我没看见有这个功能的函数啊!
FileWrite ( "文件句柄/文件名", "文本/数据" ) 需要打开文本文件
_FileWriteToLine($sFile, $iLine, $sText [, $fOverWrite = 0])要指定行,如果我的程序关闭再打开的时候变量肯定又恢复了,达不到“>>”的效果!
我现在是用的AU3调用dos命令来实现的,AU3有类似的函数吗?

mozha 发表于 2011-2-3 13:08:44

本帖最后由 mozha 于 2011-2-3 13:14 编辑

源于提问的智慧:
1:Run(@ComSpec & ' /c dir>d:\dir.txt',"", @SW_HIDE)

2:#include <Process.au3>
$rc = _RunDos("start Http://www.autoitx.com")

netegg 发表于 2011-2-3 15:37:47

本帖最后由 netegg 于 2011-2-3 15:39 编辑

不是我中文学的太差就是楼主的中文使用的过于高级,居然没看懂
如果是追加不是很简单吗 fileopen($file,1)

bingxing8000 发表于 2011-2-3 16:43:22

留个脚印,备用

lixiaolong 发表于 2011-2-3 20:19:51

本帖最后由 lixiaolong 于 2011-2-3 20:35 编辑

回复 1# love5173

就是看你用什么模式打开文件,好好看帮助就可以明白.
0 = 只读模式(默认)
1 = 写入模式(附加数据到文件尾部)
2 = 写入模式(删除之前的内容)

DOS命令echo 你好>>test.txtau3这么写$file = FileOpen("test.txt", 1);附加数据到文件尾部
FileWrite($file, "你好")
FileClose($file)DOS命令echo 你好>test.txtau3这么写$file = FileOpen("test.txt", 2);删除之前的内容
FileWrite($file, "你好")
FileClose($file)DOS命令echo 你好>>test.txt
echo 再见>>test.txtau3这么写$file = FileOpen("test.txt", 1);附加数据到文件尾部
FileWrite($file, "你好")
FileWrite($file, "再见")
FileClose($file)

love5173 发表于 2011-2-3 21:15:37

别笑话我好么,我知错了我以后会好好看说明的

lixiaolong 发表于 2011-2-3 22:46:21

回复 6# love5173

我没那个意思,请你别介意.
大家共同学习.

love5173 发表于 2011-2-5 16:40:22

李小龙,大哥,>> 有回车的作用自动换行的, 我用你教的结果都追尾了,而且看起来没我直接调用DOS来的语言简洁,你来解释{:1_564:}

lixiaolong 发表于 2011-2-5 17:41:42

本帖最后由 lixiaolong 于 2011-2-5 17:58 编辑

回复 8# love5173

FileWrite函数没有自动添加换行的功能.
没有的功能只能自己添加.

换行我一直用@CRLF,知道这些你可以自己定义函数(Func).

我写了一个请你参考

用法:
$File = @ScriptDir & "\test.txt"
Dos_FileWrite($File, '>>', "你好");附加数据到文件尾部
Dos_FileWrite($File, '>', "再见");删除之前的内容
Func Dos_FileWrite($Dos_File, $Frag, $Dos_Text)
        If $Frag = '>>' Then
                $Frag = 1
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        ElseIf $Frag = '>' Then
                $Frag = 2
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        Else
                MsgBox(16, '警告', '输入方式错误!')
        EndIf
        FileClose($Dos_File)
EndFunc   ;==>Dos_FileWrite

这样写很像dos命令吧,呵呵
$File = @ScriptDir & "\test.txt"

echo("你好", '>>', $File)
echo("再见", '>>', $File)

Func echo($Dos_Text, $Frag, $Dos_File)
        If $Frag = '>>' Then
                $Frag = 1
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        ElseIf $Frag = '>' Then
                $Frag = 2
                FileWrite(FileOpen($Dos_File, $Frag), $Dos_Text & @CRLF)
        Else
                MsgBox(16, '警告', '输入方式错误!')
        EndIf
        FileClose($Dos_File)
EndFunc   ;==>echo

love5173 发表于 2011-2-5 18:13:33

您觉得把换行放在第二句的开始好呢 还是第一句的结束?

lixiaolong 发表于 2011-2-5 18:50:06

回复 10# love5173

放在哪里都可以,看怎么写代码.
像我写的函数应该写在后面.

love5173 发表于 2011-2-5 18:56:48

帮我写个Access 的数据库脚本 最简单的就可以 我参考下语法什么的 英文我看不懂

水木子 发表于 2011-2-5 19:03:53

好多次看楼主的帖子,感受和3楼一样。
楼主真该多去看看那些智慧的提问帖。

比如这位:http://www.autoitx.com/forum.php?mod=viewthread&tid=21592&highlight=%B4%F2%B0%FC

上图上代码,简单、明了、到位的描述,将自己的问题阐述得清清楚楚,这样便于他人能更快更准的帮你找出问题所在,而不是把时间都花在猜问题上了。

没别的意思,希望楼主莫见怪,还是那句话,指出你的不足,是希望你能更好,新年快乐。

小A 发表于 2011-2-6 01:23:51

楼上的大哥,说得有道理

lhy6456210 发表于 2011-2-6 23:35:02

lixiaolong水木子 支持上面两位
页: [1]
查看完整版本: DOS下的>>用au3 怎么写?【已解决】