t895073 发表于 2011-10-20 11:52:46

[已解决]搜索档案加入字串在档案最尾端..

本帖最后由 t895073 于 2011-10-27 15:18 编辑

我的文件夹内有很文件夹
每個文件夹内只有一个 Makedata 文件 (没有档名!可以编辑)
如何在搜索"所有"文件夹内的 Makedata文件 然後加入一串字串在档案尾端
我想加入字串 "fata=0" 谢谢
(搜索所有目录层数)

xms77 发表于 2011-10-20 13:59:32

截个图出来看看先,不然不好理解你的意思

t895073 发表于 2011-10-20 17:50:23

回复 2# xms77


   我修改了问题了...
请问看的懂吗

haodd 发表于 2011-10-20 20:47:44

回复 3# t895073 #NoTrayIcon

Opt("MustDeclareVars", 1)
#include <Constants.au3>

Local $Drive, $I, $File

$File = InputBox("输入", "输入要查找的文件名:", "", "", 180, 80, -1, -1)
If @error Or $File = "" Then Exit

$Drive = "D:\"


      Local $foo, $line, $lines
      $foo = Run(@ComSpec & " /c dir /b /s /a " & $File, $Drive & "\", @SW_HIDE, $STDOUT_CHILD)
      MsgBox(0,0,@ComSpec & " /c dir /b /s /a " & $File, $Drive & "\")
      $lines = ""
      While 1
                $line = StdoutRead($foo)
                If @error Then ExitLoop
                $lines &= $line
      WEnd
      If $lines = "" Then
                MsgBox(16, "错误", "在驱动器" & $Drive & "没有找到要找的文件!", 2)
      EndIf
      MsgBox(0, "找到的文件:", $lines)
这个可以做到!
    传送门 http://www.autoitx.com/forum.php?mod=viewthread&tid=3049&highlight=%CB%D1%CB%F7%2B%CE%C4%BC%FE

xms77 发表于 2011-10-20 20:51:46

用_ListFiletoArray()函数来查找文件夹

t895073 发表于 2011-10-20 21:50:36

本帖最后由 t895073 于 2011-10-20 21:52 编辑

回复 4# haodd


这个会列出所有的路径
我有修改一下都失败
我想要每个文件去加入想要的字串在文件尾
不知道怎么加入写文件内容功能
麻烦了

haodd 发表于 2011-10-21 13:16:33

本帖最后由 haodd 于 2011-10-21 13:18 编辑

回复 6# t895073


   
$file = FileOpen($line,1)
FileWriteLine ($file, "数据" )
;~         or
;~         FileWrite ( $file, "文本/数据" )
FileClose($file)

t895073 发表于 2011-10-21 14:11:45

回复 7# haodd


请问这句要加在哪里?
加进去都没有作用

haodd 发表于 2011-10-21 19:34:25

回复 8# t895073


    While 1
                $line = StdoutRead($foo)
                If @error Then ExitLoop
                $lines &= $line
               $file = FileOpen($line,1)

FileWriteLine ($file, "数据" )

;~      or

;~      FileWrite ( $file, "文本/数据" )

FileClose($file)

      WEnd

haodd 发表于 2011-10-21 19:34:46

自己动手 丰衣足食

t895073 发表于 2011-10-26 21:13:12

本帖最后由 t895073 于 2011-10-26 21:36 编辑

回复 9# haodd

试了....失败
-----------------------------------
      While 1
                $line = StdoutRead($foo)
                If @error Then ExitLoop
                $lines &= $line
                                $file = FileOpen($line,1)
                                If $file = -1 Then
                                        MsgBox(0, "错误", "不能打开文件.")
                                        Exit
                                EndIf
                                FileWriteLine ($file, "fata=0" )
      WEnd
-----------------------------------
照你的方法
会显示这列MsgBox(0, "", "不能打文件.")
哪里出了问题呢?
谢谢

afan 发表于 2011-10-27 00:31:07

Local $path = 'C:\Test'
Local $sSearch = 'Makedata'
Local $sAddLine = 'fata=0'
Local $Info = ''

_FileSearch($path)
If $Info <> '' Then
        MsgBox(64, '已修改的文档', $Info)
Else
        MsgBox(48, '', '未找到匹配的文档')
Endif

Func _FileSearch($searchdir)
        Local $search = FileFindFirstFile($searchdir & '\*')
        If $search = -1 Then Return -1
        While 1
                Local $file = FileFindNextFile($search)
                If @error Then
                        FileClose($search)
                        Return
                ElseIf $file = '.' Or $file = '..' Then
                        ContinueLoop
                ElseIf StringInStr(FileGetAttrib($searchdir & '\' & $file), 'D') Then
                        _FileSearch($searchdir & '\' & $file)
                EndIf
                If $file = $sSearch Then
                        Local $fTmp = $searchdir & '\' & $file
                        If StringRegExp(FileRead($fTmp), '\v$') Then
                                FileWriteLine($fTmp, $sAddLine)
                        Else
                                FileWriteLine($fTmp, @CRLF & $sAddLine)
                        Endif
                        $Info &= $fTmp & @CRLF
                EndIf
        WEnd
EndFunc   ;==>_FileSearch

t895073 发表于 2011-10-27 15:17:42

回复 12# afan


非常谢谢afan 帮忙
学习了!!!
页: [1]
查看完整版本: [已解决]搜索档案加入字串在档案最尾端..