Проблема с *.bat
del C:\Documents and Settings\Вася\Рабочий стол\t.exe
Сохранил и окончание txt заменил на bat
Сколько не запускал команда так и не выполнилась.
Почему ?
И как сделать так чтобы она выполнилась ?
Написал простую команду в блокноте :
del C:\Documents and Settings\Вася\Рабочий стол\t.exe
Сохранил и окончание txt заменил на bat
Сколько не запускал команда так и не выполнилась.
Раз и навсегда запомнить, что никогда нельзя запускать отлаживаемые или неизвестные bat-файлы напрямую из графической оболочки Windows!
Вместо этого запускается или cmd, или цивилизованная консольная программа, вроде Far. Так можно выполнить не только командный файл, но и увидеть результаты.
Выполнение файла в cmd покажет, что система ругается примерно следующим образом: "Файл или каталог C:\Documents не найден". А означает это следующее:
- в Windows, с введением длинных имен файлов (LFN) появилась возможность создавать файлы и каталоги, содержащие символы, которые нельзя было использовать в оригинальной версии DOS
- соответственно, с введением LFN были расширены правила написания имен файлов и каталогов. В частности, имена, содержащие пробелы, должны экранироваться кавычками
Получается, что приведенная команда должна выглядеть так:
Раз и навсегда запомнить, что никогда нельзя запускать отлаживаемые или неизвестные bat-файлы напрямую из графической оболочки Windows!
Вместо этого запускается или cmd, или цивилизованная консольная программа, вроде Far. Так можно выполнить не только командный файл, но и увидеть результаты.
Спасибо за разъяснение smartsoft.
Я только одного не понял вчём всётаки разница
между cmd и bat помоему в win xp они работают
обсалютно одинаково (в других не проверял) ?
Я только одного не понял вчём всётаки разница
между cmd и bat помоему в win xp они работают
обсалютно одинаково (в других не проверял) ?
Если речь о расширениях файлов, то разница только в этом. Майкрософту что-то вздумалось в NT назвать файлы командными, а не пакетными. В Windows 9x/ME данное расширение системой не обрабатывается.
Если речь о расширениях файлов, то разница только в этом. Майкрософту что-то вздумалось в NT назвать файлы командными, а не пакетными. В Windows 9x/ME данное расширение системой не обрабатывается.
На счёт разрешений понятно.
Я не понял только это:
"Раз и навсегда запомнить, что никогда нельзя запускать отлаживаемые или неизвестные bat-файлы напрямую из графической оболочки Windows!"
Объясни пожалуйсто почему ?
Чем мне это грозит если не учитывать стирающие не те файлы команды и т.п. ?
Разве *.cmd в этом плане менее опасны ?
На счёт разрешений понятно.
Разрешений или расширений?
Ты не понял. Я имел в виду не .cmd как расширение файла, а интерпретатор командной строки NT - программа cmd.exe. Без нее трудно найти ошибки в командных файлах, т. к. не видно результатов выполнения команд.
насколько я понимаю, в batch-файлах нужно использовать DOS-имена файлов, т.е. не Documents and Settings, а DOCUMEN~1 или что-то типа того. хотя я могу ошибаться
Можно использовать и DOS-имена файлов. Только это не универсально, если предполагается их запуск из-под Win32.
Дело в том, что короткое имя файла зависит от того, есть ли другие файлы с похожими на него именами. Чаще всего папка "Documents and Settings" называется DOCUMEN~1, но не факт, что она не может называться и DOCUMEN~2 или DOCUMEN~6. Насколько я знаю, правила формирования коротких имен файлов различаются для FAT, NTFS и CDFS.
Поэтому, универсальнее все-таки использовать длинные имена файлов, экранируя их кавычками.