Cmd не видит файл

Обновлено: 04.07.2024

Я сделал приложение, которое устанавливается/развертывается в /Program Files/STUDYvault/ под названием "STUDYvault Client.exe", и в приложении кнопка запускает/вызывает .cmd, который находится в том же каталоге, называемом "Скрипты System.cmd"

.CMD просто запускает основные команды xcopy для резервного копирования. Когда программное обеспечение выполняется вручную, оно видит .cmd в том же каталоге, однако, когда оно запускается системой (например, при запуске, либо с помощью ключа реестра, либо с помощью ярлыка в папке запуска) (я пробовал как Inno Setup, так и NSIS), оно выходит из строя с необработанным исключением "не удается найти указанный файл". Я думаю, что OS выполняет .exe, но запускает его, скажем, в /Windows или /System32 или что-то в этом роде. Похоже, это не проблема с приложением visual studio (оно запускается при выполнении вручную и находит .cmd независимо от того, какой каталог) или установщиком (в основном это просто извлечение файлов /Program и размещение ссылки в загрузочной части реестра)

Мой друг и я придумали обходной путь, хотя это довольно гнусно. Можно было бы заставить пользователя установить программное обеспечение в C:/Program Files/STUDYvault и сделать его неизменяемым , а затем в приложении указать на C:/Program Files/STUDYvault/Scripts System.cmd вместо просто "SCRIPTS SYSTEM.cmd" - может ли это также работать?

Я уверен, что мне просто не хватает чего-то глупо маленького, потому что приложение отлично запускает следующий код при установке:

EDIT: хорошо, я разработал обходной путь для всех, у кого есть эта проблема. Похоже, он связан с правами или с тем, откуда система его выполняет; поэтому он вызывает .CMD откуда бы то ни было (скорее всего, не из каталога установки)-так что в приложении я его вызывал:

Который является каталогом установки, а затем в установщике (Inno Setup) Я использовал следующее Для определения каталога установки в разделе [setup]:

Здесь DefaultDirName=SD\DIRECTORY определяет, что он будет принудительно установлен в программные файлы (x86) (отлично для пользователей 64-bit Windows, 32-битным пользователям придется иметь дело со вторым Папка Program Files, но x64 - это самая распространенная установка в наши дни, так что у нас там не будет проблем); DisableDirPage=yes скрывает страницу установки, которая спрашивает пользователя, где он хочет ее установить-большинство пользователей оставят ее as-is, но для более любопытного пользователя, который может захотеть ее изменить, эта WILL сломает установку, видя, что она вызывает /Program файлов (x86)/STUDYvault в приложении.

Это довольно грязное решение, и я чувствую себя здесь доктором злом, но . оно работает. Надеюсь, это поможет любому, кто столкнется с подобной проблемой в будущем.

2 ответа

Совсем недавно я начал работать с Microsoft Visual Basic 2010 Express и создаю приложение, которое загружает URL в компонент браузера. Один из параметров, которые пользователь может настроить, - это запустить приложение при запуске windows. Когда этот checkbox установлен и пользователь сохраняет.

Я хочу, чтобы Visual Basic мог запускать команду make в каталоге C:\projectTest\. Я пытался использовать это: Dim output As String = String.Empty Using Process As New Process Process.StartInfo = New ProcessStartInfo(cmd) Process.StartInfo.WorkingDirectory = C:\projectTest\.

Вы можете получить местоположение исполняемого файла, используя Environment.CurrentDirectory . Используя это свойство, мы можем заставить код работать независимо от расположения исполняемой папки (конечно, если файл cmd существует в той же папке). Так что, возможно, это более правильный способ выполнить работу :

Возможно, вы захотите улучшить его еще больше, добавив логику, чтобы проверить, действительно ли файл cmd существует в местоположении, указанном batchFilePath (для этого вы можете использовать System.IO.File.Exists() ).

Похожие вопросы:

У меня есть файл Windows Application .exe (который был сделан в Visual Studio) и файл .mdf в той же папке (не уверен, что файл .mdf имеет значение). Как я могу открыть это приложение Windows в.

Когда я бегу myProcess = Process.Start(something.exe) и хотите запустить его с помощью кнопки, чтобы он не нашел файл - мне нужно выполнить его из той же папки, где находится приложение, как я могу.

Я пытаюсь прочитать файл в Java. Я написал программу и сохранил файл в той же папке, что и моя программа. И все же я продолжаю получать FileNotFoundException. Вот код: public static void.

Совсем недавно я начал работать с Microsoft Visual Basic 2010 Express и создаю приложение, которое загружает URL в компонент браузера. Один из параметров, которые пользователь может настроить, - это.

Я хочу, чтобы Visual Basic мог запускать команду make в каталоге C:\projectTest\. Я пытался использовать это: Dim output As String = String.Empty Using Process As New Process Process.StartInfo =.

Я использую sublime text 3 и visual studio code , но обнаружил, что если я открою другой файл в той же папке, он не откроет другую вкладку, вместо этого новая вкладка заменит старую. Как открыть.

Извините, если об этом спрашивали раньше, но я обнаружил, что другие решения слишком сложны для меня.. Во всяком случае, я пытаюсь найти изображение через cmd в коде visual basic и сохранить путь к.

Я пытаюсь import другой файл .py в той же папке, но терплю неудачу. Я не могу понять почему. папка A содержит папку B , файл c.py и d.py находится в папке B , я пытаюсь import c к d , и есть файл.

Я пытаюсь прочитать содержимое файла config.json , который доступен в той же папке файла, который его прочитал, этот файл называется settings.php , на самом деле у меня есть эта строка кода в.

Конфигурация компьютера
Процессор: Mobile QuadCore AMD A6-3400 APU with Radeon(tm) HD Graphics 1.4GHz
Материнская плата: Toshiba Sattelite 755D
Память: Samsung M471B5773DH0-CH9
HDD: WDC WD5000BPKX-22HPJT0 (500 GB, 7200 RPM, SATA-III)
Видеокарта: 1) AMD Radeon(TM) HD 6520G (512 МБ) (с процессором) 2) AMD Radeon HD 6450M/6470M/6490M (Seymour)
Звук: Conexant Cx20585 @ AMD Hudson-2 FCH - High Definition Audio Controller
Блок питания: Toshiba PA3715U-1ACA
CD/DVD: TSSTcorp CDDVDW TS-L633F SATA CdRom Device
Монитор: LG Philips LP156WH4-TLA1 [15.6" LCD]
Ноутбук/нетбук: Toshiba Satellite L755D-11W
ОС: Microsoft Windows 7 Home Edition x64
Здравствуйте. Проблема с bat файлом после распаковки sfx архива. в папке работает на ура, при запуске после распаковки, то пишет не найден фаил. Мозг уже сломал, но ни в какую. Black_SOKOL, разговор ни о чём. Где пакетный файл? Где самораспаковывающийся архив? В каких условиях происходит описанное?

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: Mobile QuadCore AMD A6-3400 APU with Radeon(tm) HD Graphics 1.4GHz
Материнская плата: Toshiba Sattelite 755D
Память: Samsung M471B5773DH0-CH9
HDD: WDC WD5000BPKX-22HPJT0 (500 GB, 7200 RPM, SATA-III)
Видеокарта: 1) AMD Radeon(TM) HD 6520G (512 МБ) (с процессором) 2) AMD Radeon HD 6450M/6470M/6490M (Seymour)
Звук: Conexant Cx20585 @ AMD Hudson-2 FCH - High Definition Audio Controller
Блок питания: Toshiba PA3715U-1ACA
CD/DVD: TSSTcorp CDDVDW TS-L633F SATA CdRom Device
Монитор: LG Philips LP156WH4-TLA1 [15.6" LCD]
Ноутбук/нетбук: Toshiba Satellite L755D-11W
ОС: Microsoft Windows 7 Home Edition x64

Последний раз редактировалось Black_SOKOL, 30-04-2017 в 15:34 . Причина: й

Не прописаны пути в батнике. А ведь рабочая папка батника не обязана совпадать с той, в которой лежит он сам.

Надо вместо
START AVZ.EXE
сделать
START %

dp0 не нужен) — и батник будет искать файл именно в том каталоге, из которого запущен сам. Независимо от расположения и имени этого каталога.

В конце батника — то же самое.

Конфигурация компьютера
Процессор: Mobile QuadCore AMD A6-3400 APU with Radeon(tm) HD Graphics 1.4GHz
Материнская плата: Toshiba Sattelite 755D
Память: Samsung M471B5773DH0-CH9
HDD: WDC WD5000BPKX-22HPJT0 (500 GB, 7200 RPM, SATA-III)
Видеокарта: 1) AMD Radeon(TM) HD 6520G (512 МБ) (с процессором) 2) AMD Radeon HD 6450M/6470M/6490M (Seymour)
Звук: Conexant Cx20585 @ AMD Hudson-2 FCH - High Definition Audio Controller
Блок питания: Toshiba PA3715U-1ACA
CD/DVD: TSSTcorp CDDVDW TS-L633F SATA CdRom Device
Монитор: LG Philips LP156WH4-TLA1 [15.6" LCD]
Ноутбук/нетбук: Toshiba Satellite L755D-11W
ОС: Microsoft Windows 7 Home Edition x64
Вот об этом думал, но не знал как описать. Запомню, да и можете все команды батников скинуть?

Последний раз редактировалось mwz, 30-04-2017 в 16:08 .

Ошибок полная куча.

1. Диск c: может не существовать.
2. Каталог Users на c: может не существовать.
3. Работа может идти в ОС ниже Vista. Отсюда — не Users, и не Desktop.
4. Имя каталога профиля пользователя может отличаться от имени пользователя.
Посему — %temp%, %UserProfile%, %AppData%. В данном случае — вообще ничего не задавать, пусть ставится в %ProgramFiles%, мы же вирусы собираемся искать, али что?!

— кому написано? А если пользователь укажет иной путь при распаковке — что тогда?!
Теперь по самому install.bat. Что Вы хотите получить? Что такое %SYSTEMDISK%, откуда она взялась, что в ней? Зачем Вы пытаетесь асинхронно вызвать avz.exe из того каталога, в котором его нет? Зачем без конца крутите цикл без внутренней паузы — чтобы тупо полностью загрузить одно ядро, дабы avz лишнего не досталось?! Для чего параметр /wait был придуман, а? Внутри архива install.bat отличается иным содержимым, которое ещё краше (но там хоть раз /wait есть), во всяком случае, понять, для чего нужно внутри того же цикла ожидания:

— не смог осмыслить. Зачем там два вызова AVZ с двумя скриптами, когда вполне можно обойтись одним?! Зачем там вообще пакетный файл, когда вместо него просто указываем вызов самого AVZ?!

«Windows не может найти cmd. Убедитесь, что вы правильно ввели имя, а затем повторите попытку ».

Это может быть неприятно для тех, кто использует командную строку в целях решения других проблем, связанных с производительностью системы. Что еще хуже, командная строка может использоваться другими программами для запуска определенных процессов. Проблема означает, что файл «cmd.exe» отсутствует и не может быть найден Windows. Обычно это может произойти из-за наличия вредоносного ПО, которое вторглось и повредило папку с cmd. Таким образом, мы начнем с запуска сканирования, а позже попробуем другие методы.

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

Тот, кто регулярно пользуется Интернетом, всегда подвергается риску заражения нежелательным или вредоносным ПО. Даже если вы думаете обратное, мы все же рекомендуем вам выполнить полное сканирование вашей системы, чтобы проверить данный способ, прежде чем переходить к следующим шагам восстановления. Используйте Malwarebytes для обнаружения и удаления вредоносных или нежелательных программ, которые могут нарушить конфигурацию вашего ПК. Загрузите его по ссылке ниже и проверьте, решит ли это проблему.

2. Проверьте путь в Переменных среды.

Если предыдущий шаг не устранил проблему, вы можете попробовать восстановить путь к папке System32, в которой находится cmd. Существует вероятность того, что путь был утерян, из-за чего возникает проблема cmd. В приведенных ниже инструкциях мы поможем вам определить потерю и восстановить ее, если она действительно есть.

В Windows 10:

  1. Щелкните правой кнопкой мыши по Этот компьютер и выберите Свойства.
  2. Перейдите в Дополнительные параметры системы.
  3. В открывшемся окне перейдите в Advanced и откройте Переменные среды где-то внизу.
  4. Под Системные переменные разделом, дважды щелкните Path.
  5. Там вы сможете увидеть список важных системных переменных. Убедитесь, что все перечисленные ниже есть там:


%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

В Windows 7 и 8.1:

Шаги такие же, как указано выше. Единственная разница в том, что вы увидите переменные, разделенные точкой с запятой (;). Если вы обнаружили, что чего-то нет в списке системных переменных, добавьте недостающие, используя точки с запятой для разделения каждой из них.

3. Убедитесь, что cmd включен в реестре Windows.

Выполните следующие шаги, чтобы узнать, включен ли cmd в реестре Windows.

  1. Тип Regedit в поиске рядом с Меню Пуск, щелкните правой кнопкой мыши и выберите Запуск от имени администратора.
  2. После открытия перейдите в HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System .
  3. Теперь вы увидите пустое место в правой части окна. Если там нет DisableCmd DWORD , cmd включен. Если он есть, вы должны удалить его и перезагрузить компьютер.

4. Убедитесь, что cmd включен в Редакторе локальной групповой политики.

Это еще одна важная часть правильной работы cmd. Попробуйте сделать это и посмотреть, решит ли это проблему.

  1. Нажмите на Windows Key + R комбинацию клавиш и напишите gpedit.msc , чтобы открыть Редактор локальной групповой политики.
  2. Перейдите в Конфигурация пользователя > Административные шаблоны > Система.
  3. В списке переменных найдите и дважды кликните по Запретить использование командной строки.
  4. В открывшейся вкладке убедитесь, что данный параметр не включен. В противном случае, измените значение на Не задано or Отключено.
  5. Сохраните изменения и перезагрузите компьютер.

5. Попробуйте запустить cmd через Windows Powershell

Вы можете попробовать запустить cmd через другую встроенную командную утилиту (Windows Powershell). Вот шаги:

  1. Тип Powershell в поиске рядом с Меню Пуск.
  2. Щелкните правой кнопкой мыши и выберите Запуск от имени администратора.
  3. Затем просто введите cmd и нажмите Enter чтобы открыть ее.

Если и это не помогло, переходите к последнему, но радикальному шагу по исправлению ошибки.

6. Используйте функцию восстановления Windows, чтобы откатить систему.

Когда ничего не работает, лучшее решение - использовать последнюю точку резервного копирования, чтобы восстановить систему до нормального состояния. Иногда Windows без согласия пользователей устанавливает системные обновления или пакеты конфигурации. Не исключение, что ваша система получила ошибочное обновление, которое перевернуло некоторые настройки. Чтобы обратить последствия вспять, мы сделаем следующее:

  1. Щелкните правой кнопкой мыши по Этот компьютер и выберите Свойства.
  2. Перейдите в Дополнительные параметры системы.
  3. Войдите в Защита системы и выберите Восстановить.
  4. В открывшемся приложении нажмите Далее и выберите дату, когда cmd работал без проблем. Также есть возможность включить Поиск затрагиваемых программ, который покажет, какие программы будут удалены после процедуры восстановления. Кроме того, если в вашей системе есть что-то важное, сделайте резервную копию, чтобы предотвратить безвозвратную потерю.
  5. После того, как будет найден список уязвимых программ, нажмите Далее и Завершить чтобы начать восстановление вашей системы.

Заключение

Вот так можно решить ошибку «Windows не может найти cmd». Обычно таких проблем множество с другими программами / утилитами, установленными на вашем компьютере. Даже стороннее программное обеспечение может быть заблокировано из-за таких неисправностей. Надеемся, это все же помогло вам добиться успеха в решении проблемы.

команда cd не работает

Выпуск 1: Команда CD не работает, когда я пытаюсь сменить каталог на другой диск.

Если вы хотите изменить путь к каталогу и папке одновременно, вы можете добавить переключатель «/ d» после команды CD, например cd / d d: PS.

Выпуск 2: Я использовал команду CD, чтобы переключить привод на E :, но проблема в том, что команда CD не работала. Я использовал команду «cd E:». Когда я попытался использовать команду «E: », она все еще не могла переместить меня на диск E.

Еще один более простой способ перейти на другой привод в CMD - не использовать команду CD, а только ввести букву диска с двоеточием, например E :.

как изменить каталог в миниатюре cmd

Как изменить каталог в CMD | Как использовать команду CD Win 10

Узнайте, как изменить каталог в CMD (командной строке) с помощью команды CD в Windows 10. Подробное руководство по изменению каталога в командной строке.

Не удается перейти к диску D с помощью команды CD в командной строке Windows (CMD)? Проверьте, как изменить каталог на диск D в командной строке.

Выпуск 1: На моем компьютере с Windows 10 я больше не могу переходить с компакт-диска на рабочий стол. Что не так с моим компьютером? Я набираю команду cd Desktop в CMD, но он говорит: «Система не может найти указанный путь».

  • Вы можете щелкнуть правой кнопкой мыши пустое место на экране рабочего стола компьютера и выбрать Новый для создания нового файла на рабочем столе.
  • Затем вы можете щелкнуть правой кнопкой мыши файл создания и выбрать Свойства .
  • Под Вкладка Общие , вы можете проверить путь к файлу, и он содержит текущее расположение каталога рабочего стола.

Если вы также хотите сменить привод, вы можете использовать кд / д .

создать папку для удаления файлов с миниатюрой cmd

Как создать и удалить файл или папку с помощью CMD

Узнайте, как создать и удалить файл или папку с помощью cmd. Используйте командную строку Windows для создания и удаления файлов и каталогов.

Нижняя граница

Если вы столкнулись с тем, что команда CMD CD не работает или рабочий стол компакт-диска не работает в Windows 10, вы можете проверить подробные исправления выше.

К вашему сведению, если вы по ошибке удалили или потеряли некоторые файлы на своем компьютере с Windows 10, вы можете использовать MiniTool Power Data Recovery легко восстановить любые удаленные / потерянные файлы с компьютера. Кроме этого лучшее программное обеспечение для восстановления данных также позволяет восстанавливать данные с внешнего жесткого диска, USB / большого пальца / ручка , SD-карты телефонов и фотоаппаратов и многое другое.

Читайте также: