Batch file 带驱动器号
通过使用D:drive中文件夹中的命令Batch file 带驱动器号,batch-file,Batch File,通过使用D:drive中文件夹中的命令 for /f "delims=" %%d in ('cd') do set pathdrv=%%d echo %pathdrv% 我得到“d:\some folder”。我想写批处理命令,在驱动器的根目录中创建自动运行文件。请帮助我剥离驱动器号“d:”,因此输出为“\some folder”,我要做什么额外的更改来剥离“\”简短回答:使用子字符串语法从%cd%伪变量中剥离前两个字符: %cd:~2% 要删除第一个反斜杠,请执行以下操作: %cd:~
for /f "delims=" %%d in ('cd') do set pathdrv=%%d
echo %pathdrv%
我得到“d:\some folder”。我想写批处理命令,在驱动器的根目录中创建自动运行文件。请帮助我剥离驱动器号“d:”,因此输出为“\some folder”,我要做什么额外的更改来剥离“\”简短回答:使用子字符串语法从
%cd%
伪变量中剥离前两个字符:
%cd:~2%
要删除第一个反斜杠,请执行以下操作:
%cd:~3%
当控制台窗口设置为光栅字体时,即使使用Unicode路径,这也能可靠地工作
回答更长,详细说明更多选项(所有选项都不够好): 对于批处理文件的参数,可以使用特殊语法
%p1
,该语法提供批处理文件的第一个参数的路径(请参阅)
这与环境变量的工作方式不同,但您可以使用两种技巧:
call :foo "%cd%"
...
goto :eof
:foo
set result=%~p1
goto :eof
子例程可以有参数,就像批处理文件一样:
for %%d in ("%cd%") do set mypath=%%~pd
- 控制台设置为“光栅字体”,而不是TrueType字体,如Lucida console或ConsoleAs
- 当前目录包含Unicode字符
- 在当前遗留代码页中没有表示(对于西方文化,CJK是一个不适合的好选择)。请记住,在这种情况下,您只会得到问号,而不是字符
?
取代。唯一的例外是答案开头的子字符串变量,即使使用光栅字体,也会在路径中保留Unicode字符。驱动器号:
%CD:~0,1%
完整驱动器名称(包括冒号):
嗯,对不起。当我详述你的答案时,我有点得意忘形。现在的实际答案完全不同,这是我在写作过程中研究的一个不幸的副作用。请随时回复。
%CD:~0,2%