使用D:drive
中文件夹中的命令for /f "delims=" %%d in ('cd') do set pathdrv=%%d
echo %pathdrv%
我得到“d:\ some folder”。我想编写批处理命令以在驱动器的根目录中创建自动运行文件。请帮我剥去驱动器号“d:”,这样输出就是“\ some folder”,我还要做些什么来删除“\”。
答案 0 :(得分:9)
简答:使用substring语法从%cd%
伪变量中删除前两个字符:
%cd:~2%
要删除第一个反斜杠:
%cd:~3%
当控制台窗口设置为光栅字体时,即使使用Unicode路径,这也可以正常工作。
更长的答案,详细说明了一些选项(其中没有一个能够运作得很好):
对于批处理文件的参数,您可以使用特殊语法%p1
,它为您提供批处理文件的第一个参数的路径(请参阅this answer)。
这与环境变量的工作方式不同,但您可以使用两种技巧:
使用子程序:
call :foo "%cd%"
...
goto :eof
:foo
set result=%~p1
goto :eof
子程序可以有参数,就像批处理文件一样。
使用for
:
for %%d in ("%cd%") do set mypath=%%~pd
但是,
时这个问题是,当你尝试设置设置它们的命令行时,whil环境变量可以保持 Unicode就好了你会遇到问题。上面详述的每个选项都依赖于在执行命令之前的某种输出。这有一个问题,即Unicode不会被保留,而是被?
取代。唯一的例外是此答案一开始的子字符串变体,即使使用光栅字体,也会在路径中保留Unicode字符。
答案 1 :(得分:6)
致信:
%CD:~0,1%
完整驱动器名称(包括冒号):
%CD:~0,2%