Я пытался добавить команду tracert в файл .bat.

На cmd.exe я писал:

tracert 111.111.111.111 > desktop\tracert.txt

и все прошло нормально. Я создал файл bat, как это:

::@echo off
Cd C:\
cls
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%
::2013_04_20__13_01_47
::tracert 111.111.111.111 > desktop\Tracert_IP1_%datetimef%.txt
tracert 111.111.111.111 > desktop\tracert.txt

Идея состоит в том, чтобы добавить данные в имя файла, я также хотел бы записать их в tracert.txt, но я не знаю как.

Результат кода:

C:\>echo 20/04/2013
20/04/2013

C:\>echo 14:18:12,44
14:18:12,44

C:\>set datetimef=2013_04_20__14_18_12

C:\>echo 2013_04_20__14_18_12
2013_04_20__14_18_12

**C:\>tracert 111.111.111.111  1>desktop\tracert.txt**
**The system cannot find the path specified**

Почему добавляется "1" перед «>» и удаляется пробел между «>» и "рабочим столом"?

В любом случае, я попытался снова запустить команду tracert непосредственно в cmd, но теперь она выдает то же сообщение об ошибке, что и файл bat: The system cannot find the path specified

Изменить 1: Ну, проблема с путем не найти, потому что я изменил путь cmd с помощью команды "cd", чем папка рабочего стола просто не была найдена! Я смущен! Извините ребята.. Спасибо за повторы о "1" и исчезающих с пробелами.

3 ответа3

3

"Рабочий стол" в данном случае является относительным путем. Вам следует перейти в нужную папку (команда "cd") или указать полный путь к выходному файлу в файле .bat.

1

Место, которое вы знаете как desktop является подпапкой вашего профиля пользователя с таким же именем. Если ваш пакетный файл хранится на вашем рабочем столе, просто удалите desktop\ часть вывода. Когда вы запускаете cmd его базовым каталогом является ваш корневой каталог профиля пользователя, в котором папка рабочего стола находится ниже этого. Если вы создадите пакетный файл и запустите его, то базовым каталогом, в котором работает cmd будет этот каталог, а не ваш профиль пользователя.

Если вы хотите, чтобы ваш пакетный файл всегда выводился на ваш рабочий стол независимо от того, где он хранится, то в среде cmd есть переменная USERPROFILE которая указывает на каталог вашего профиля (C:\Users\yourUserName) и может быть объединена с \desktop для вывода файлов на ваш рабочий стол.

Где у вас есть

tracert 111.111.111.111 > desktop\tracert.txt

Замени это

tracert 111.111.111.111 > %USERPROFILE%\desktop\tracert.txt
1

1> является STDOUT, в отличие от STDERR, который является 2>

Я думаю, что это просто синтаксическая проблема, cmd.exe не любит пробелы, поэтому он меняет его.

См. Страницу перенаправления команд Microsoft для получения дополнительной информации.

Что касается не найденной ошибки, проверка разрешений в этом каталоге будет моим первым предложением.

PS: больше не выигрышный пользователь, но является ли «рабочий стол» верным способом доступа к рабочему столу, или это имя каталога?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .