Batch file CMD:仅使用文件名将文件路径存储到变量中
我正在创建一个程序,允许用户“搜索”计算机中的文件,如果文件Batch file CMD:仅使用文件名将文件路径存储到变量中,batch-file,variables,cmd,path,directory,Batch File,Variables,Cmd,Path,Directory,我正在创建一个程序,允许用户“搜索”计算机中的文件,如果文件存在,它将在新目录中创建一个指向该文件的快捷方式。可以使用任何和所有扩展。问题是,为了启动某些扩展名(如.jar),我需要文件的路径 到目前为止,我所看到的示例中没有一个能够成功地帮助我实现这一点,因为它们通常需要一条已经给定的路径来拆分 前 我怎样才能只将它给出的路径存储到变量中 非常感谢您的帮助。如果您使用for循环来处理dir命令的输出,batch将自动知道路径和文件名。从这里开始,只需使用众所周知的%~dp语法即可获得路径 fo
存在
,它将在新目录中创建一个指向该文件的快捷方式。可以使用任何和所有扩展。问题是,为了启动
某些扩展名(如.jar),我需要文件的路径
到目前为止,我所看到的示例中没有一个能够成功地帮助我实现这一点,因为它们通常需要一条已经给定的路径来拆分
前
我怎样才能只将它给出的路径
存储到变量中
非常感谢您的帮助。如果您使用
for
循环来处理dir
命令的输出,batch将自动知道路径和文件名。从这里开始,只需使用众所周知的%~dp
语法即可获得路径
for /f "delims=" %%A in ('dir /b /s /a:-d') do echo %~dpA
其中d
获取驱动器,p
获取路径
for /f "delims=" %%A in ('dir /b /s /a:-d') do echo %~dpA
其他选项(来自/?的,
):
%~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