我正在处理一个处理文件夹的脚本,并且总是有一个文件需要重命名。新名称应该是父目录名称。我如何在批处理文件中得到这个?目录的完整路径是已知的。批处理脚本:如何在没有完整路径的情况下获取父目录名称?
回答
这不是很清楚的脚本应该如何熟悉与讨论的路径,但下面的例子中至少应该给你如何进行一个想法:
FOR %%D IN ("%CD%") DO SET "DirName=%%~nxD"
ECHO %DirName%
这个脚本获取从CD
变量的路径,并从中只提取名称为DirName
。
可以使用basename
命令:
FULLPATH=/the/full/path/is/known
JUSTTHENAME=$(basename "$FULLPATH")
-1:'basename'在Windows上不可用。 – 2014-04-23 09:07:47
您可以使用内置的bash
招数:
FULLPATH=/the/full/path/is/known
JUSTTHENAME=${FULLPATH##*/}
说明:从
- 第一
#
手段“去掉模式开始' - 秒
#
装置“中删除不再可能图案” */
是图案
使用内置bash
避免调用外部命令(即basename
)因此这优化你的脚本。但是脚本的便携性较差。
我不知道如何实现这一点。看起来有点超过我的expertiese(没有我知道的任何可接受的命令)我需要一点点演练 – cafevincent 2012-01-16 15:24:37
@cafevincent请给出一个例子:你的目录,你的文件是什么,你需要一行命令还是需要修改一个脚本?你说“dir的完整路径已知”=>什么是变量名? – olibre 2012-01-17 12:39:16
-1:这是关于Windows批处理文件,而不是bash。 – 2014-04-23 09:08:06
- 1. 获取批处理脚本中特定路径的父目录
- 2. 如何从批处理脚本中的文件路径获取目录路径
- 3. 批处理文件:获取父目录的绝对路径
- 4. 获取父目录名称和文件名,但没有扩展名从完整的文件路径在bash中?
- 5. 如何在没有完整路径的情况下使用批处理程序编辑文件?
- 6. 如何从批处理文件中的完整路径中提取目录的名称?
- 7. 在批处理脚本中获取文件父目录的全名
- 8. 使用ant,在不知道完整路径的情况下重命名目录?
- 9. 如何在windows批处理模式下无需文件扩展名的完整路径获取文件名
- 10. 如何获取cmake路径上的所有目录名称?
- 11. Windows批处理脚本检索目录路径并通过它
- 12. 避免路径名称与批处理
- 13. 批处理比较路径名称%1
- 14. 如何获取图标名称的完整文件路径?
- 15. 在windows批处理脚本中获取路径的文件名部分
- 16. 批处理脚本 - 在具有模式的路径中清空多个目录
- 17. 如何在没有获取所有其他目录和子目录的情况下获取Subversion外部版本
- 18. Windows批处理没有列出完整的目录内容
- 19. 如何在没有完整路径的情况下在文件夹和父文件夹之间进行复制
- 20. 如何在没有域名的情况下获取用户名
- 21. AngularJS,如何获取模型完整路径/名称?
- 22. 如何获取完整的目录应用程序路径?
- 23. 如何使用C++获取system32目录的完整路径?
- 24. 批处理:相对目录/路径
- 25. 如何从批处理脚本中的当前路径中获取更高级别文件夹的名称?
- 26. Perl - 如何将完整的目录路径名传递到perl脚本中
- 27. 如何在具有空格的文件夹名称的批处理文件中写入完整路径?
- 28. 在批处理脚本中,如何获取文件的长名称?
- 29. 在Windows批处理脚本中获取没有扩展名的文件名
- 30. 如何在Go中的目录中获取所有文件的完整路径?
哦,男孩,我觉得愚蠢。谢谢你。 – cafevincent 2012-01-15 17:50:50
@cafevincent你应该接受它作为答案。 – 2012-01-17 06:37:26
要正确地处理名称中包含一个点“。”的文件夹名称,您应该使用'%%〜nxD'而不是 – 2012-01-17 06:39:22