Batch For Loop不适用于文件夹列表

时间:2016-05-23 23:13:42

标签: batch-file

为了简短起见,我想在目录中创建文件夹列表,以便用户更容易选择文件夹。

这就是我所拥有的:

@echo off

Setlocal EnableDelayedExpansion
...

set /a Ocount=0

for /d %%a in (...\listofoptions\*) do (

     set /a count+=1
     set Option !count!=%%a
     echo Option !count! - %%a
)

... ... ...

但我的问题是选项0被设置为列表中的最后一个文件夹,并且它是唯一正在创建的变量,但是计数正在回显正确。我是一个名为' OPTION#' ...的变量列表  当我进入'设置o'在我的命令行中,只显示选项0。

Option 0 = last folder
Ocount = 26

1 个答案:

答案 0 :(得分:0)

Echo Off
Setlocal ENABLEDELAYEDEXPANSION

Set Count=0

For /f "delims=" %%A in ('dir /ad /b c:\windows') do (
Set /a "Count=Count + 1"
Echo !Count! %%A 
)

正如您echo off一样,您没有看到SelLocal命令错误的信息(错误拼写错误的套管)。

这是毫无意义的(...\listofoptions\\...是父母父母的Novell OS标准。当前窗口不支持。 \\表示在字符串的开头跟随一个UNC样式路径。

count+=1前面需要set /a

这会给你一个对话框

on error resume next
Set bffShell = CreateObject("Shell.Application")
Set bff = bffShell.BrowseForFolder(0, "Select the My Documents folder", 9)
If Err.number<>0 Then
        MsgBox "Error Setting up Browse for Folder"
    Else
        A = bff.ParentFolder.ParseName(bff.Title).Path
        If err.number=424 then err.clear
        wscript.echo A
End If

将其命名为bff.vbs

使用

For /f "delims=" %%A in ('cscript //nologo "c:\folder\bff.vbs"') Do echo %%A