2014-06-05 44 views
0

我已经taht代码批处理文件,命令的副本找不到目录

:instalation1 
cls 
echo. 
echo ============== 
echo = III  = 
echo ============== 
echo. 
if %place%==1 (
    md C:\Users\%username%\Desktop\SBI 
    set folder=C:\Users\%username%\Desktop\SBI 
    ) else (
      md \SBI 
     set folder=\SBI 
     ) 
cd %folder% 
timeout>nul 2 

:instalation 2 
cls 
echo. 
echo ============== 
echo = IIIIII  = 
echo ============== 
echo. 
copy \data\SBI.bat %folder%\ 
timeout>nul 2 

但是当我运行它,命令副本说:“系统找不到目录” (文件夹“数据”在与批处理文件相同的目录中)

我在做什么错?

回答

0

确保您与运行的批处理文件在同一个驱动器上。

如果您在E:驱动器上并且运行C:\ data \ batchfile或C:\数据位于路径上,那么它将从C:运行批处理文件,但工作目录位于E:为了执行目的,E:\ data不存在。作为测试,只需添加一个CD即可在复制之前为您提供当前驱动器。

这只是一个测试,看看你是否在你期望的驱动器上。

:instalation 2 
cls 
echo. 
echo ============== 
echo = IIIIII  = 
echo ============== 
echo. 
cd 
copy \data\SBI.bat %folder%\ 
timeout>nul 2enter code here 
+0

我得到答案芦荟昨天。当我输入xcopy \ data \ ...计算机正在考虑这个C:\ data \ ...如果我想从文件夹数据中复制某些东西,并且数据与批处理文件命令应该在同一目录中看起来像这样xcopy data \ ... – MrJW

0
copy \data\SBI.bat %folder%\ 

您使用绝对路径(:\ DATA \ sbi.bat)。

而是使用相对路径:

copy data\SBI.bat %folder%\ 

而且与cd更改驱动器也使用

cd /d %folder% 
+0

我会考虑在'data'之前加上'%〜dp0',以确保它总是选择正确的路径,而不管CWD。 – icabod