可以在命令行中执行此操作:
C:\Users\ken.chen>echo|set /p=cd %cd%|clip
C:\Users\ken.chen>cd C:\Users\ken.chen
C:\Users\ken.chen\nuts\notes>echo|set /p=cd %cd%|clip
C:\Users\ken.chen\nuts\notes>cd C:\Users\ken.chen\nuts\notes
但是如果我将doskey cc添加到我的初始化批处理文件中,变量%cd%总是我的主目录:
doskey cc=echo^|set /p=cd %cd%^|clip
C:\Users\ken.chen\nuts\notes>cc
C:\Users\ken.chen\nuts\notes>cd C:\Users\ken.chen
如何解决?或者我是否需要在单独的批处理文件中编写它?
答案 0 :(得分:1)
cd
变量始终"包含"同一个目录,因为它在创建宏时被评估过一次,并且此时主目录是最新的。
但是,如果转义%
个字符,则会在每次调用cc
时评估变量:
doskey cc=echo^|set /p=cd ^%cd^%^|clip
但是,转义%
的方法只能在命令行中使用。要在批处理文件中转义它们,请使用其他方法:
doskey cc=echo^|set /p=cd %%cd%%^|clip
答案 1 :(得分:0)
你能不能简单地使用下面的内容?
echo.cd "%cd%" | clip
替代方法 -
如果您的路径不包含任何空格,您可以使用一个班轮 -
for /f "tokens=3" %%i in ('dir ^|findstr /i /c:"directory of"') do (echo.cd "%%i"| clip)
如果它包含任何空格 -
for /f "delims=" %%i in ('dir ^| findstr /i /c:"Directory of"') do set mypath=%%i
set mypath=%mypath: Directory of =%
echo.cd "%mypath%"| clip
干杯,G