2012-10-02 380 views
0

好吧,我正在自己的小命令提示符下进行自己的个人使用,我一直在努力让它在过去的2个小时内工作。这是我做了什么:命令提示符脚本命令“cd”

@echo off 
set /p labnum="Enter Lab Numnber:" 
set labdir=C:\Users\BLAHBLAHBLAH\Dir\Lab- 
set labdir2="%labdir%%labnum%" 
cd labdir2 
:cmd 
set /p cmd=">" 
%cmd% 
cls 
goto cmd 

我基本上希望能够每一个“会话”,但每次执行CD labdir2命令时间之前改变路径,我的电脑抱怨道,“系统无法找到路径指定“。我知道确保该目录存在!我直接从Windows资源管理器粘贴文本。任何和所有的帮助表示赞赏。 谢谢!

回答

3

的错误是在这里:

cd labdir2 

要更改为变量的内容表示的目录改变到一个名为labdir2目录,但:

cd %labdir2% 

确保你可以应付特殊字符我会用双引号括起来:

cd "%labdir2%" 

您甚至可能希望将/ d swith与cd命令一起使用,以确保您也更改当前驱动器。因此,最终的版本应该是:

cd /d "%labdir2%" 
+1

+1报价肯定是这里一个很好的做法,所以我不同意你的建议不同意。然而,为了完整性,请注意(好或坏;-)'cd'可以在不引用名称的情况下处理目录名称中的空格。例如。 'mkdir“dir”'然后'cd dir'变成'dir'(另见'help cd')。引用当然需要其他特殊字符(如你所说),比如'^'。 –

+0

根据我的经验,即使'cd' **可以**处理未加引号的空格,但并不总是与它们配合良好。另外,当用路径中的空格调用程序时,**将**与未加引号的空格有关。我的建议是在路径和程序“情境”中使用始终如一的可靠方法,这意味着使用带空格的路径/程序的双引号。 –