我们想要创建一个批处理脚本,为每个.xml文件运行一个命令。该命令应该针对每个不以 _m 结尾的文件运行。我们尝试使用forfiles浏览每个文件,但我们不知道如何使用执行来使用它。
这是我们当前无法运行的脚本,我们尝试遍历每个文件。识别文件名,并将其子串到不运行命令(如果它以 _m 结尾)。
forfiles /p /source /m *.xml do (
set "filename=@fname"
set "extension=_m.xml"
set "extended=%filename%extension"
IF NOT %filename:~-2%=="_m"(
ssoadm import-entity --cot something--realm something--spec saml2 -m @file -x %extended --adminid something--password-file password --debug
)
感谢您的帮助!
答案 0 :(得分:1)
for /f "delims=" %%a in (
'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" '
) do (
ssoadm import-entity --cot something--realm something--spec saml2 -m "%%a" -x %extended --adminid something--password-file password --debug
)
,dir
/b
/a-d
基本形式(仅限姓名)/v
中没有目录名的每个条目;找到/e
不/i
结束/L
不区分大小写%%a
字面意思“-m.xml”的名称,将找到的完整名称指定为ssoadm
不知道%%~na
做了什么,但
%%~xa
将生成文件的基本名称,并delayed expansion
扩展名。
您的代码可能有效,但您需要调用for /f "delims=" %%a in (
'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" '
) do (
echo(%%~na
echo(%%~xa
echo(%%~nxa
echo(%%a
echo(%%a %%~na_M%%~xa
)
(搜索SO)并修改代码以适应delayedexpansion方法(在SO上记录很多次)
union all
...随意挑选部件/常数并将它们放在一起meccano风格。