Почему этот пакетный скрипт создает на первый взгляд случайные каталоги? - PullRequest
1 голос
/ 29 марта 2012

Я играл и выполнил следующие действия: .bat

@echo off
mkdir %~dp0
pause

. Это привело к созданию двух каталогов в расположении пакета:

  • "и"
  • «Настройки» (внутри: «Usuario», inisde, «Escritorio», inisde, «123»)

Примечание: Я выполнил пакет из каталога «123»

Я хочу, чтобы некоторый фон понял, что только что произошло

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Команда mkdir создает все каталоги, указанные в командной строке (разделенные пробелами).Например,

mkdir foo bar

сделает каталоги foo и bar.В вашем случае аргумент 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"

и посмотретьесли двойные кавычки помогают.

1 голос
/ 29 марта 2012

Поскольку вы выполнили его в C: \ Documments and Settings ..., но не избежали его, он разделяет путь на основе пробелов:

C:\Documents and Settings\...

разбивается на "C:\Documents", "and", "Settings\..."

Если вы избежите этого с "", т.е. "%~dp0", это должно сработать: оно расширится до "C:\Documments and Settings\...", которое не будет разделено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...