gpt4 book ai didi

string - 批处理文件名字符串连接

转载 作者:行者123 更新时间:2023-12-01 10:53:19 24 4
gpt4 key购买 nike

这个问题已经困扰我好几个小时了。我希望有人可以帮助阐明一些问题。基本上,我试图扫描文件夹中的所有文件(特定类型)(里面没有子文件夹,所以不必担心这种情况),获取这些文件的名称,并将所有文件连接成一个字符串,例如,如果一个文件夹有两个文件,a.xml、b.xml和c.xml,我想得到一个字符串看起来像

-a a.xml -a b.xml -a c.xml

下面是我的代码。

copy *.xml C:\FTP
setLocal Enabledelayedexpansion
set "directory=C:\temp"
set "attachment= "
set "a= -a "
for %%n in (%directory% *.xml) DO (
set "attachment=!attachment! %a% %directory%\%%n "
echo.%attachment%
)
setlocal disabledelayedexpansion
echo.%attachment%

输出如图所示 http://imgur.com/vpUUe05我遇到的问题是,首先,for 循环中的所有回声什么都不打印。如那些空行所示。我想要的最后一个字符串,即附件,包含

的初始子串
-a C:\temp\C:temp. 

这实际上不是一个文件。我想要的最后一个字符串应该是没有这个子字符串的字符串,只有它后面的字符串。顺便说一句,如果文件夹中没有文件,我希望字符串“附件”只是一个像“”这样的空字符串。谁能帮我?非常感谢!

最佳答案

for 循环中,您显示 %attachment% 的值,因此该值不会在每次迭代中更新;您必须使用延迟扩展来这样做。

for 命令中的一组值是:(%directory% *.xml) 即值 C:\temp以及所有扩展名为 .xml 的文件,我认为当前目录中没有这些文件。之后,您在 %a% %directory%\%%n 表达式中使用此值,因此结果为 -a C:\temp\C:\temp。我认为这里没有意义。

如果您不想要列表中的文件夹值,请不要插入它并在 for 可替换参数中使用 %~NXn 修饰符。

下面是正确的代码:

copy *.xml C:\FTP
setLocal Enabledelayedexpansion
set "directory=C:\temp"
set "attachment= "
set "a= -a "
for %%n in ("%directory%\*.xml") DO (
set "attachment=!attachment! %a% %%~NXn "
echo.!attachment!
)
setlocal disabledelayedexpansion
echo.%attachment%

关于string - 批处理文件名字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16888762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com