如何在不使用shell脚本中的for循环的情况下使用扩展名从文件夹中获取单个文件名?

时间:2018-02-16 11:18:55

标签: shell batch-file

我想从一个特定文件夹中获取单个文件,该文件夹只包含单个文件,因此不要为此使用for循环。我该怎么写批处理脚本呢。下面是我的示例代码,但它用于循环,我认为如果它们只是单个文件,那么我们使用for循环。

cd ${p:DownloadArtifacts}\ReleaseNote
for %%# in (*.xlsx) do echo myvalue=%%~nx#

还有一个脚本

dir /s /p /b "*.xlsx 

使用此脚本我无法将值存储到变量中,请帮助..

2 个答案:

答案 0 :(得分:1)

通过在一个特定文件夹中说"该文件夹包含仅单个文件" 为什么要做所有这些花哨的东西?

假设您使用copy复制文件:

cd to dir...
copy /Y *.xlsx "C:\some directory"    

答案 1 :(得分:0)

我没有任何理由想要在没有循环的情况下做到这一点!

我可以在不使用临时保留文件的情况下考虑的唯一方法是使用ForFiles但是ForFiles在技术上本身就是一个循环命令

要做到这一点,你需要自己运行原始脚本,我认为这也可以称为循环

虽然这只是为了它的地狱:

@Echo Off
If Defined me GoTo :Next
Set "me=%~f0"
ForFiles /M *.xlxs /C "Cmd /C 0x220x22%me%0x22 @file0x22"
Exit /B
:Next
Set "var=%~1"
Rem show variable
Set var
Pause