Windows 批处理:获取以某个值开头的第一个文件夹名称?

Windows 批处理:获取以某个值开头的第一个文件夹名称?

我有一个批处理文件,我将要使用的文件夹名称作为参数传递。但现在我想让它更智能一点,让用户只指定他们想要作为参数传递的文件夹名称的前几个字符。

例如,当我当前文件夹中有三个文件夹时:

  • 文件夹一
  • 文件夹二
  • 另一个文件夹

每当我输入“An”作为参数时,我希望批处理文件循环遍历当前文件夹中的文件夹并获取以指定字符串开头的第一个文件夹的名称。在本例中,该名称将是“AnotherFolder”。

我知道如何在 C# 中执行此操作,但我对批处理文件还不熟悉。有人可以帮我吗?如果这是一个新手问题,我很抱歉,但我真的似乎无法让它工作。

关于此脚本的一些背景信息:我目前有一个用于存放我的项目的文件夹,其中包含大量文件夹,这些文件夹均受版本控制 (TortoiseSVN)。为了简化操作,我创建了一个批处理文件,只需在其中键入内容即可svnlog "some folder name"显示该项目的 SVN 日志。当前批处理:

cd C:/Projects/
SET p=C:/Projects/
SET a=%1
SET pa=%p%%a%
TortoiseProc.exe /command:log /path:%pa%

答案1

好吧,我已经明白了。请参阅下面的批处理文件。

cd C:/Projects/
SET p=C:/Projects/
SET a=%1
for /D %%x in (%a%*) do if not defined f set "f=%%x"
SET pa=%p%%f%
TortoiseProc.exe /command:log /path:%pa%

相关内容