当前位置:  开发笔记 > 编程语言 > 正文

如何使用CMD从文件路径获取文件夹路径

如何解决《如何使用CMD从文件路径获取文件夹路径》经验,为你挑选了3个好方法。

我需要包含cmd文件的文件夹的路径.使用%0我可以获得文件名.但是如何获取文件夹名称?

c:\ temp\test.cmd >> test.cmd

PS我当前的目录!=脚本的文件夹.



1> Wadih M...:

对于文件夹名称和驱动器,您可以使用:

echo %~dp0

您可以使用不同的修饰符获取更多信息:

%~I         - expands %I removing any surrounding quotes (")
%~fI        - expands %I to a fully qualified path name
%~dI        - expands %I to a drive letter only
%~pI        - expands %I to a path only
%~nI        - expands %I to a file name only
%~xI        - expands %I to a file extension only
%~sI        - expanded path contains short names only
%~aI        - expands %I to file attributes of file
%~tI        - expands %I to date/time of file
%~zI        - expands %I to size of file

The modifiers can be combined to get compound results:
%~dpI       - expands %I to a drive letter and path only
%~nxI       - expands %I to a file name and extension only
%~fsI       - expands %I to a full path name with short names only

这是来自"for /?"的复制粘贴 命令提示符.希望能帮助到你.

有关

前10个DOS批处理提示(是,DOS批处理...)显示batchparams.bat(链接到源作为要点):

C:\Temp>batchparams.bat c:\windows\notepad.exe
%~1     =      c:\windows\notepad.exe
%~f1     =      c:\WINDOWS\NOTEPAD.EXE
%~d1     =      c:
%~p1     =      \WINDOWS\
%~n1     =      NOTEPAD
%~x1     =      .EXE
%~s1     =      c:\WINDOWS\NOTEPAD.EXE
%~a1     =      --a------
%~t1     =      08/25/2005 01:50 AM
%~z1     =      17920
%~$PATHATH:1     =
%~dp1     =      c:\WINDOWS\
%~nx1     =      NOTEPAD.EXE
%~dp$PATH:1     =      c:\WINDOWS\
%~ftza1     =      --a------ 08/25/2005 01:50 AM 17920 c:\WINDOWS\NOTEPAD.EXE


我添加了batchparams.bat

2> NightOwl888..:

接受的答案很有帮助,但如果您没有使用传入的值,如何从路径中检索文件名并不是很明显.我能够从这个线程中解决这个问题,但是如果其他人不那么幸运,这就是它的完成方式:

@echo off
setlocal enabledelayedexpansion enableextensions

set myPath=C:\Somewhere\Somewhere\SomeFile.txt
call :file_name_from_path result !myPath!
echo %result%
goto :eof

:file_name_from_path  
(
    set "%~1=%~nx2"
    exit /b
)

:eof
endlocal

现在,该:file_name_from_path函数可以在任何地方用于检索值,而不仅仅是传入参数.如果参数可以以不确定的顺序传递到文件中,或者路径根本没有传递到文件中,这可能非常有用.



3> 小智..:

为了将这些分配给变量,请确保不要在前面或等号后面添加空格:

set filepath=%~dp1
set filename=%~nx1

那你应该没有问题.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有