找回密码
 加入
搜索
查看: 3892|回复: 17

如何表示当前程序所在目录

 火.. [复制链接]
发表于 2010-1-13 00:07:04 | 显示全部楼层 |阅读模式
本帖最后由 朱雅琼 于 2010-1-13 09:56 编辑

RT:

@AutoItExe返回 的目录里含有 \aaa.exe

比如我想删除当前目录下所有文件该怎么写?

评分

参与人数 1金钱 +10 收起 理由
pusofalse + 10 感谢主动修改帖子分类为[已解决]。

查看全部评分

发表于 2010-1-13 00:09:46 | 显示全部楼层
@ScriptDir
 楼主| 发表于 2010-1-13 00:26:12 | 显示全部楼层
非常感谢,自己没找到..哎...帮助文档还是要多看
 楼主| 发表于 2010-1-13 00:32:59 | 显示全部楼层
还有问下,怎么判断输入的是目录还是文件

如c:\aaa 这样的输入
发表于 2010-1-13 00:35:35 | 显示全部楼层
$a = FileGetAttrib('c:\aaa')
If StringInStr($a, 'D') Then Msgbox(0, 0, '文件夹是也')
 楼主| 发表于 2010-1-13 00:47:58 | 显示全部楼层
能不能帮忙写一个遍历文件夹...

如遍历文件夹,输出当前文件和子文件下的*.txt

自己想关天写不出来
发表于 2010-1-13 00:51:09 | 显示全部楼层
$type = ".txt"
_filelist(@ScriptDir)
Func _filelist($searchdir)
        $search = FileFindFirstFile($searchdir & "\*.*")
        If $search = -1 Then Return -1
        While 1
                $file = FileFindNextFile($search)
                If @error Then
                        FileClose($search)
                        Return
                ElseIf $file = "." Or $file = ".." Then
                        ContinueLoop
                ElseIf StringInStr(FileGetAttrib($searchdir & "" & $file), "D") Then
                        _filelist($searchdir & "" & $file)
                EndIf
                If StringRight($file, 4) = $type Then
                        MsgBox(0, 0, $searchdir & "" & $file)
                EndIf
        WEnd
EndFunc   ;==>_filelist
 楼主| 发表于 2010-1-13 00:58:16 | 显示全部楼层
非常感谢...感触颇深啊...这么晚了还帮我解决问题,再次感谢
发表于 2010-1-13 00:58:59 | 显示全部楼层
回复 8# 朱雅琼


    1点整,还早着呢~ :)
 楼主| 发表于 2010-1-13 01:18:08 | 显示全部楼层
本帖最后由 朱雅琼 于 2010-1-13 01:19 编辑

早的话再帮我改下这个吧
我想批量把目录和子目录*.txt 改成*.bak这样的
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $ok
                        $txt=GUICtrlRead($Input1)
                        $bak=GUICtrlRead($Input2)
                        $path=@ScriptDir
                        _filelist($path,$txt,$bak)
        EndSwitch
WEnd


Func _filelist($searchdir,$ren,$rened)

        $search = FileFindFirstFile($searchdir & "\*.*")

        If $search = -1 Then Return -1

        While 1

                $file = FileFindNextFile($search)

                If @error Then

                        FileClose($search)

                        Return

                ElseIf $file = "." Or $file = ".." Then

                        ContinueLoop

                ElseIf StringInStr(FileGetAttrib($searchdir & "" & $file), "D") Then

                        _filelist($searchdir & "" & $file,$ren,$rend)

                EndIf
                        _RunDOS('ren ' & $path &'\*.' & $ren &' ' & '*.' & $rened)

        WEnd

EndFunc   
这样会显示声明啊
发表于 2010-1-13 01:20:04 | 显示全部楼层
回复 10# 朱雅琼


    你总得自己动动手,再帮你就是害你了~  - -||
 楼主| 发表于 2010-1-13 01:26:11 | 显示全部楼层
其实你给我说下思路就可以了

今天不知道怎么的有点急了..

刚才那个用global解决了
发表于 2010-1-13 10:05:31 | 显示全部楼层
能不能帮忙写一个遍历文件夹...

如遍历文件夹,输出当前文件和子文件下的*.txt

自己想关天写不出来
朱雅琼 发表于 2010-1-13 00:47



    dir /s *.txt
发表于 2010-1-13 10:43:51 | 显示全部楼层
本帖最后由 gapkiller 于 2010-1-13 10:50 编辑
早的话再帮我改下这个吧
我想批量把目录和子目录*.txt 改成*.bak这样的这样会显示声明啊
朱雅琼 发表于 2010-1-13 01:18



    for /f %a in ('dir /b/s *.txt') do ren %a %~na.bak
搞定

如果非要用Autoit
#include <Process.au3>
_RunDOS("for /f %a in ('dir /b/s *.txt') do ren %a %~na.bak")
 楼主| 发表于 2010-1-13 17:03:22 | 显示全部楼层
程序已经写完了..呵呵

bat的for很鸡肋..不好用...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-7-1 10:37 , Processed in 0.088915 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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