我想在想在dos中调用“tree”命令,想达到如下目的:tree f:\gyh /f>>list.txt即把f:盘下的gyh文件中的子文件夹即文件形成列表输入到list。txt中,但是这个命令要求当前命令必须是在f:盘下执行,如:c:\>tree f:\gyh /f>>list.txt 这样来执行是不行的,怎么解决这个问题达到我想要的目的呢?请高手指教!!
   

解决方案 »

  1.   

    没有问题呀,在c盘符下执行 c:\>tree f:\gyh /f>>list.txt ,正确
    到底有什么问题
      

  2.   

    批处理这么写:
    cd f:
    tree f:\gyh /f>>f:\list.txt
    保存为批处理.bat,放在vb程序目录中。vb加个按钮,执行一句:
    Private Sub Command1_Click()
    Shell App.Path & "\批处理.bat"
    End Sub'f:\list.txt 是将list.txt放在f盘,如果想放d盘改为 tree f:\gyh /f>>d:\list.txt
      

  3.   

    原来不用那么麻烦,一个shell搞定。
      

  4.   

    Private Sub Command1_Click()
    Shell "cmd /c tree f:\gyh /f>>f:\list.txt ", vbHide
    End Sub关键是list.txt跑哪里去了,这里是f:盘。
      

  5.   

    一个例子: lRet = Shell("cmd /c move /y c:\Oldlocation.doc d:\newlocation.doc",vbHide)另一个例子:Private Sub Command1_Click()
    P$ = Environ$("WINDIR") + "\system32\cmd.exe /c mkdir c:\mynewdir"
    Print P$
    If Shell(P$) > 0 Then
    Print "greater"
    ChDir "c:\mynewdir"
    Else
    Print "less or equal"
    End If
    End Sub
      

  6.   


    Shell "cmd /c tree F:\temp\aa >F:\temp\aa.txt"
    测试通过
      

  7.   

    Ding ..........指定输出文件的绝对路径即可。
      

  8.   

    哈哈,也通过了,原来在我运行时想看cmd的运行界面 /c
    我就省去了,所以导致没有生成文件。谢谢各位大侠!!
      

  9.   

    Option ExplicitPrivate Sub Command1_Click()
            '列D盘下的目录,并保存到C盘下的list.txt文件中。第二列目录时,需要事先删除这个文件才行。
            Shell "c:\windows/system32\cmd.exe /c tree ""d:"">>c:\list.txt"
    End Sub