我想从.bat文件中获取文件的父目录。 所以,给定一个variables设置为"C:MyDirMyFile.txt" ,我想获得"C:MyDir" 。 换句话说,在典型的UNIX环境中,相当于dirname()function。 这可能吗?
webapp被黑了,但是插入了什么确切的代码? 回声(gzinflate(BASE64_DECODE(“…”)
安装Python时出错
如何找出谁运行runas应用程序?
命令Python2找不到
for %%F in (%filename%) do set dirname=%%~dpF
这会将%dirname%设置为存储在%filename%的驱动器和文件名的目录。
但是请注意包含空格的文件名。 要么他们必须设置与周围的报价:
set filename="C:MyDirMyFile with space.txt"
或者你必须在for循环中引用引号:
for %%F in ("%filename%") do set dirname=%%~dpF
两种方法都可以,两者同时不会:-)
如果因为什么原因你不能使用FOR(没有命令扩展等),你可能会逃脱.. hack:
set file=c:dirfile.txt set dir=%file%..
for循环的问题在于,它在字符串的末尾留下了尾部的。 如果要多次获取dirname,则会导致问题。 也许你需要获取包含该文件的目录的祖父目录的名称,而不仅仅是父目录。 第二次使用for循环技术将删除,并不会得到祖父目录。
这是你不能简单地做到以下几点。
set filename=c:123t.txt for %%F in ("%filename%") do set dirname=%%~dpF for %%F in ("%dirname%") do set dirname=%%~dpF
这将设置dirname为“c: 1 2 3”,而不是“c: 1 2”。
:dirname file varName setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION SET _dir=%~dp1 SET _dir=%_dir:~0,-1% endlocal & set %2=%_dir% GOTO :EOF
它被称为如下。
set filename=c:123t.txt call :dirname "%filename%" _dirname call :dirname "%_dirname%" _dirname
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。