我想从当前目录循环到子目录,只显示不包含特定字符串的目录(在此示例中为 folder1 ):
@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "tokens=*" %%G in ('dir /b /s /a:d %cd%') do ^
set str1=%%G
if not x%str1:folder1=%==x%str1% echo %%G
endlocal
但是,这个脚本什么都没有显示,但我确实有几个子目录要经过。
感谢您的帮助
斯坦
答案 0 :(得分:1)
你几乎完成了它:
def new
@country = Country.find(params[:country_id])
@enterprise = @country.enterprises.build
end
def create
@country = Country.find(params[:country_id])
@enterprise = @country.enterprises.build(params[:enterprise])
if @enterprise.save
redirect_to country_enterprise_url(@country,@enterprise)
else
render :action => 'new'
end
end
private
def enterprise_params
params.require(:enterprise).permit(:param1,:param2,:param3)
end
@echo off
setlocal EnableExtensions EnableDelayedExpansion
for /f "tokens=*" %%G in ('dir /b /s /a:d') do (
set "str1=%%G"
if not "!str1:folder1=!" == "!str1!" echo %%G
)
endlocal
命令显示文件夹,请使用dir
;没有必要包含dir /B /S /A:D
部分(与您在命令提示符下键入%cd%
的方式相同,但不包括dir
。dir %cd%
命令中,方便的是将变量及其值括在引号中:set
;这可以避免任何不可见空间造成的问题。这同样适用于set "str1=%%G"
命令中的值。if
或for
命令时,新值必须通过if
进行扩展(这就是!
)的目的。EnableDelayedExpansion
可替换参数的值仅在%%G
内有效。使用括号括起for
内的所有命令。