windows - 遍历文件夹字符串并解析出最后一个文件夹名称

标签 windows batch-file cmd

我需要获取当前正在执行的批处理文件的文件夹名称。我一直在尝试使用以下语法(目前是错误的)遍历当前目录:

set mydir = %~p0
for /F "delims=\" %i IN (%mydir%) DO @echo %i

我似乎无法将“mydir”变量值作为搜索字符串传递进来的几个问题。它似乎只有在我传递命令时才有效;我的语法有误,无法找出原因。

我的想法是使用“\”分隔符遍历文件夹字符串,但这也导致了问题。如果我在每个循环上设置一个变量,那么最后设置的值将是当前文件夹名称。例如,给定以下路径:

C:\Folder1\Folder2\Folder3\Archive.bat

我希望解析出值“Folder3”。

我需要解析该值,因为它的名称将成为我将在批处理文件中进一步创建的另一个文件夹的一部分。

如果有人能提供帮助,非常感谢。我可能完全找错了树,所以任何其他方法也会受到欢迎。

最佳答案

在与其中一些建议作斗争后,我发现成功使用了以下 1 个衬里(在 windows 2008 中)

for %%a in (!FullPath!) do set LastFolder=%%~nxa

关于windows - 遍历文件夹字符串并解析出最后一个文件夹名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/280969/

相关文章:

windows - 我可以让在 Windows 上运行的 Apache 区分大小写吗?

batch-file - 允许 bat 脚本对错误采取行动

.net - 用于xunit测试的Gradle脚本不执行任何操作或抛出execCommand == null

windows - 在 Windows 上跨共享驱动器统一

java - 在 Windows 上全局设置 "JAVA_OPTS"

windows - 我可以在运行时更改 Delphi 6 应用程序中的 "main form"吗?

windows - 如何通过 openVPN 隧道 "Split tunnel"重定向某些流量?

batch-file - 如何在Windows中使用批处理文件删除包含某些字符串的文件?

windows - 用于监视某个程序的 CPU 使用率并对其使用react的批处理脚本

java - "The filename or extension is too long error"使用渐变