2012-03-29 23 views
1

我打得周围并执行以下.bat为什么这个批处理脚本创建看似随机的目录?

@echo off 
mkdir %~dp0 
pause 

这创造了在该批次的位置两个目录:

  • “和”
  • “设置”(这里面: “Usuario” inisde这个 “Escritorio”,inisde这个 “123”)

注:我从“123”目录

执行批处理我想一些背景了解到底发生了什么

+0

又是什么'回声%〜dp0'告诉你? – 2012-03-29 00:37:23

+0

@GregHewgill'“C:\ Documments and Settings \ Usuario \ Escritorio \ 123 \”'只是用于记录,“Escritorio”表示西班牙语桌面 – ajax333221 2012-03-29 00:38:17

回答

3

mkdir命令使命令行(用空格隔开)指定的所有目录。例如,

mkdir foo bar 

将使目录foobar。在你的情况下,参数是C:\Documents and Settings\Usuario\Escritorio\123,相当于:

mkdir C:\Documents and Settings\Usuario\Escritorio\123 

由于mkdir不知道有什么不同,它认为你想创建一个名为三个目录:

  • C:\Documents
  • and
  • Settings\Usuario\Escritorio\123

你可以试试:

mkdir "%~dp0" 

看看双引号是否有帮助。

+0

+1。用鼠标点击“提交”按钮来打我(并且你的回答比我的要好)。 :) – 2012-03-29 00:41:36

+0

谢谢!我真的很讨厌随机存储在我的电脑上的东西(我从来没有想过它还创建了'C:\ Documents',现在我删除了它) – ajax333221 2012-03-29 00:41:49

+0

最后,我创建了var'set cur =“%〜 dp0“',我正在使用像这样'mkdir%cur%bananas',是否有C:\ path \”bananas'而不是'C:\ path \ bananas'''? – ajax333221 2012-03-29 00:52:45

1

既然你用C执行它:\ Documments和设置...,但也没能逃脱它,它是基于空格分割的路径:

C:\Documents and Settings\... 

会分成"C:\Documents""and""Settings\..."

如果用"""%~dp0"应该工作逃避它:它会扩大到"C:\Documments and Settings\..."将不会被分拆

相关问题