2016-10-02 2 views
-4

Привет всем, кто смотрит на мой вопрос, я играл с файлами, и я пытаюсь что-то "start /D %appdata%\Microsoft\Windows\Start Menu\Programs\Startup\<File>.bat"Batch - путь с пробелами

Я сделал это, чтобы сделать цикл, который запускает файл битой снова Whens он закончил. Когда я тестировал на это он получил ошибку

«C: \ Windows \ System32> старт/D% AppData% \ Microsoft \ Windows \ Start Menu \ Programs \ Startup \ .bat Система не может найти файл меню \ Программы \ Автозагрузка \ .bat «.

<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
start /D AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\<File>.bat 

Если вы знаете способ, чтобы исправить это или способ улучшить свою биту, пожалуйста, скажите мне!

Примечание: Я запущенный как администратор и файла .bat в папке автозагрузки.

+0

Не используйте '/ d'. См. 'Start /?'. –

+0

Как называется пакетный файл? ' .bat' является _not_ действительным именем файла ... – Aacini

+0

@Aacini Пакетный файл называется test.bat – Luseres

ответ

1

Мне кажется, что речь идет не о имени файла, но о том, как пакетный файл может ссылаться на себя или цикл.

Поэтому:

Либо использовать % 0 обозначения для последней строки вместо того, чтобы, например, Start "" "%~f0" или "%~f0"

<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
Start "" "%~f0" 

Или поставить ярлык в верхней :Label затем в нижней строке, GoTo :Label.

:Label 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
<Here is a command> 
GoTo :Label 

В качестве примечания, вы можете посмотреть на запланированные задачи для запуска скрипта при входе/запуска и продолжать делать это через регулярные промежутки времени после этого.

1

Поскольку на пути есть пробел, вам нужны кавычки, окружающие его, и/D ожидает путь к папке для стартового каталога. В этом случае он интерпретирует %AppData%\Microsoft\Windows\Start как папку запуска и Menu\Programs\Startup\File.bat как файл для выполнения. Я почти уверен, что ты не это имел в виду. Вам не нужно указывать переключатель /D, если ваш командный файл не ссылается на внешнюю зависимость через относительный путь из папки, указанной после /D.

Если у вас есть пакетный файл в папке автозагрузки Windows по умолчанию, это будет выполнить его:

start "" "%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\File.bat" 
+0

На пути нет пробелов. Да, для переключателя '/ D' следует путь к папке' AppData \ Roaming \ Microsoft \ Windows \ Start', который указывает начальную папку. В этом ответе открывается новое окно cmd.exe с строкой, заключенной в кавычки в виде _title_ окна. Смотрите: 'start /?' – Aacini

+1

@Aacini: «В пути нет пробелов» Um - так что это за символ между «Пуск» и «Меню»? – Magoo

+0

@Magoo: Команда запуска может иметь такое использование: 'start/D path command', поэтому исходная строка _корректно написана_ с двумя параметрами: одна для/D-переключателя (_path_) и другая для _command_. Этот ответ предполагает, что переключатель/D должен быть удален; однако в этом пункте не ясно (_ «Возможно, вам это не нужно», и это смущает в этой детали: в пути нет места, потому что _path_ является частью переключателя/D! В файле _command_ есть пробел (имя файла .bat). – Aacini

Смежные вопросы