Windows 如何在forfiles批处理脚本中执行多个命令
我们希望创建一个批处理脚本,为每个.xml文件运行一个命令。该命令应针对每个不以_m结尾的文件运行。我们试图用forfiles遍历每个文件,但我们不知道如何将do与它一起使用 这是我们当前不工作的脚本,我们尝试遍历每个文件。标识文件名,如果以_m结尾,则将其子字符串设置为不运行命令 谢谢你的帮助Windows 如何在forfiles批处理脚本中执行多个命令,windows,batch-file,for-loop,Windows,Batch File,For Loop,我们希望创建一个批处理脚本,为每个.xml文件运行一个命令。该命令应针对每个不以_m结尾的文件运行。我们试图用forfiles遍历每个文件,但我们不知道如何将do与它一起使用 这是我们当前不工作的脚本,我们尝试遍历每个文件。标识文件名,如果以_m结尾,则将其子字符串设置为不运行命令 谢谢你的帮助 for /f "delims=" %%a in ( 'dir /b /a-d *.xml^|findstr /v /e /i /L "_m.xml" ' ) do ( ssoadm import
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
)
对于/b
基本格式(仅名称)/a-d
中a目录
中的每个条目,不带目录名;查找/v
不/e
结束/i
不区分大小写的/L
字面上的“-m.xml”,将找到的完整名称分配给%%a
不知道ssoadm做什么,但是
%%~na
将生成文件的基名,%%~xa
将生成扩展名
您的代码可能可以工作,但您需要调用延迟扩展
(搜索SO)并修改代码以适应延迟扩展方法(如多次记录的那样)
…根据您的意愿选择零件/常量,并以meccano风格将它们组合在一起。只需使用内置的
for
命令而不是外部的for files
命令,您就可以使用do
。谢谢您的帮助。我还是不明白我到底想要什么。假设我有四个文件:file1.xml、file1_m.xml、file2.xml和file2_m.xml,我需要在每个命令中使用这些对。我该怎么做?这是我要运行的命令:somecommand-xfile1.xml-m file1\m.xml
和somecommand-xfile2.xml-m file2\m.xml
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
)
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
)