Cmd синтаксическая ошибка

0 / 0 / 0

Регистрация: 07.10.2015

Сообщений: 31

1

Синтаксическая ошибка в имени файла, имени папки или метке тома

13.01.2019, 20:26. Показов 55566. Ответов 6


Студворк — интернет-сервис помощи студентам

Здравствуйте. Выполняю лаб. работу в cmd, в которой есть задание связанные с командой «Copy». Появляется вот такое сообщение «Синтаксическая ошибка в имени файла, имени папки или метке тома.» при любой попытки скопировать файл. Файлы как только не обзывал. Пробовал разные форматы. Переносил в разные папки. Пробовал на флешке с ними работать. Ему попросту не нравятся сами файлы. Файлы не пустые. Я их попробовал закинуть в папку и скопировать все содержимое из нее, в итоге он доходит до первого файла, пишет все тоже самое и ничего не копирует. Язык программ, не поддерживающих Юникод стоит Русский, хоть у меня пути все на английском и так были. Подскажите в чем может быть проблема.



0



Модератор

Эксперт по электронике

8316 / 4215 / 1602

Регистрация: 01.02.2015

Сообщений: 13,125

Записей в блоге: 4

13.01.2019, 20:49

2

Вы работаете в Windows или в DOS (чистом, виртуальной машине, эмуляторе)?



0



0 / 0 / 0

Регистрация: 07.10.2015

Сообщений: 31

13.01.2019, 21:15

 [ТС]

3

В windows



0



4332 / 2122 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

13.01.2019, 23:25

4

Цитата
Сообщение от aronhide
Посмотреть сообщение

при любой попытки скопировать файл

покажите эти попытки, выложите сюда код который дает такую ошибку и список файлов в этой папке командой
>spisok.txt (dir /a-d/b)

Добавлено через 12 минут
и еще нередко бывает что ошибаются со слешем. Если у вас первой строкой написано
cd d «%~dp0», то именно такая ошибка и выскочит потому как правильно так
cd /d «%~dp0»



0



0 / 0 / 0

Регистрация: 07.10.2015

Сообщений: 31

14.01.2019, 00:33

 [ТС]

5

Список файлов:
111.bmp
122.txt
123.txt
Команда:
Copy C:******Desktop111122.txt [D:Temp]
Ну а скопировать все с папки тоже самое выдает. Под звездочками просто юзеры и имя пользователя, все на английском.



0



alpap

4332 / 2122 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

14.01.2019, 03:59

6

так работает?

Windows Batch file
1
if exist "%UserProfile%Desktop111122.txt" copy "%UserProfile%Desktop111122.txt" "D:Temp"

Добавлено через 3 часа 0 минут

Цитата
Сообщение от aronhide
Посмотреть сообщение

просто юзеры и имя пользователя

эти имена запросто могут иметь пробелы



1



0 / 0 / 0

Регистрация: 07.10.2015

Сообщений: 31

14.01.2019, 18:30

 [ТС]

7

Спасибо. Помогло. Видимо проблемы были в названиях пути.



0



…Ошибка в синтаксисе команды

Раздел форума: 

Автор темы: 

При вводе в cmd.exe команды ren cd %USERPROFILE%Рабочий столЯрлык для TOTALCMD.ink TotalCmd.ink выбивает Ошибка в синтаксисе команды. Мне кажется, что проблема здесь в пробелах в имени. Но как её решить? Может можно их заменить каким-нибудь другим символом? Если кто-то знает ответ, помогите, пожалуйста.

В пути с пробелами путь должен быть в кавычках: «С:Program files» например, а не С:Program files

Кстати, нужно ещё поменять и расширение — не ink, а lnk.

Всем спасибо за помощь, но у меня все равно что-то не получается.

>В пути с пробелами путь должен быть в кавычках…

Прописываю: ren «cd %USERPROFILE%Рабочий столЯрлык для TOTALCMD.Ink» TotalCmd.Ink теперь выбивает «Синтаксическая ошибка в имени файла, имени папки или метке тома»

ИМХО, дело в том, что аргументом к cd должен быть путь к папке, а не к файлу.

А если прописать так:

chcp 1251

cd %USERPROFILE%

cd «Рабочий стол»

ren «Ярлык для TOTALCMD».Ink TotalCmd.Ink будет работать?

Должно. Попробуйте. Если нет — сообщите, будем разбираться.

Кавычка должна быть ПОСЛЕ cd, я же писал — путь, а не команда

И ren всесте с сd в отдой строке нельзя, все по порядочку, по командочке.

Сначала в нужный каталог, потом дальше… т.е. расписать все на бумаге словами, столбиком, а потом все переводить в команды, и если заработает — начинать оптимизировать, наводить красоту.

>Сначала в нужный каталог, потом дальше…

С путем разобрался, я в папке Рабочй Стол, возникла другая проблема, я прописываю: ren «Ярлык для TOTALCMD».Ink TotalCmd.Ink выбивает «Не удается найти указанный файл»

ren «Ярлык для TOTALCMD.Ink» TotalCmd.Ink

Кавычки после полного имени файла, с расширением.

>ren «Ярлык для TOTALCMD.Ink» TotalCmd.Ink

Все равно выбивает «Не удается найти указанный файл», хотя он там есть

Фениксу. Кавычек я не ставлю ещё cо времён CP/M. Всё всегда переименовывалось. Но 1) убедись, что файл Ярлык для TOTALCMD.Ink у тебя в текущем дире действительно есть, для чего введи dir Ярлык для TOTALCMD.Ink или, что ИМХО лучше, dir *TOTALCMD.* 2) убедись, что кириллица в имени файла нигде не путается с латиницей. (Не накололи ли тебя на 1-ое апреля?) А вообще, чтобы переименовать ярлык, щёлкни по нему на рабочем столе правой кнопкой, выбери «Переименовать» и именуй, как хошь. :)

CD здесь ни к чему.

chcp 1251

ren «%USERPROFILE%Рабочий столЯрлык для TOTALCMD.lnk» TotalCmd.lnk

Проверено, работает.

2 Phoenix:

> Все равно выбивает «Не удается найти указанный файл», хотя он там есть

Так может он уже переименован, поэтому и не находит? ;)

2 mike (old student):

> Кавычек я не ставлю ещё cо времён CP/M.

Не стоит давать советов, в которых не уверены. Если путь к файлу содрежит пробел, то в Windows надо ОБЯЗАТЕЛЬНО закавычить.

> вообще, чтобы переименовать ярлык, щёлкни по нему на рабочем столе правой кнопкой, выбери «Переименовать» и именуй, как хошь. :)

Mike, как модно говорит «вы жжОте непадецки» ;) Видимо человеку надо именно так, а не иначе.

Огромное спасибо всем кто помог мне, и особенно Sens’у

>CD здесь ни к чему.

chcp 1251

ren «%USERPROFILE%Рабочий столЯрлык для TOTALCMD.lnk» TotalCmd.lnk

>Если путь к файлу содрежит пробел, то в Windows надо ОБЯЗАТЕЛЬНО закавычить.

ОК, глюканул.

>Видимо человеку надо именно так.

Батник, видимо, разрабатывает.

На экране церез 10 минут после включения кмпа начинает мигать кажд. 2 сек.окно CWindowssystem32cmd.exe, то черное, то белое,в черном — слова Ошибка в синтаксисе команды и все. Остальное работает.Что делать? ПОМОГИТЕ!

>Остальное работает.Что делать? ПОМОГИТЕ

Вирус — лечить!

:) Следующий вопрос будет «Чем и как». Потом «где взять»…

Меня умиляют эти вопросы. Ответ на них один: обратитесь к специалисту. Как в той персидской басне: старик пришел к соседу и просит у него меру для зерна, тот отвечает: «Иди к другому, у меня нет сита».

— Почему? Я прошу меру?

— У тебя трясутся руки, ты просыпешь зерно на пол. Придешь за совком и веником. Соберешь. Зерно надо будет просеять. А сита у меня нет. Иди к другому.

Эдуард > :) Следующий вопрос будет «Чем и как». Потом «где взять»…

Почти любой вирус лечится просто — перестановкой OC.

>У тебя трясутся руки, ты просыпешь зерно на пол. Придешь за совком и веником. Соберешь. Зерно надо будет просеять. А сита у меня нет. Иди к другому.

;-)

>Почти любой вирус лечится просто — перестановкой OC.

Если перестановка ОС — это просто.

  • Remove From My Forums
  • Вопрос

  • Задача — создать файл из cmd скрипта

    @echo off
    
    set PATH1=error:data.txt
    set PATH2=d:data.txt
    set /a error=0
    set DATA=^
    line1 ^
    line2 ^
    line3
    
    echo Creating %PATH1%
    (echo %DATA% 1>%PATH1% 2>nul) && set /a error=0 || set /a error=1
    echo errorLevel= %errorLevel%
    echo error= %error%
    if %error% equ 0 (
    	type %PATH1%
    )
    echo.
    echo Creating %PATH2%
    (echo %DATA% 1>%PATH2% 2>nul) && set /a error=0 || set /a error=1
    echo errorLevel= %errorLevel%
    echo error= %error%
    if %error% equ 0 (
    	type %PATH2%
    )
    pause
    

    Выдаёт следующие

    Creating error:data.txt
    Синтаксическая ошибка в имени файла, имени папки или метке тома.
    errorLevel= 0
    error= 1
    
    Creating d:data.txt
    errorLevel= 0
    error= 0
    line1 line2 line3
    Для продолжения нажмите любую клавишу . . .

    Вопросы:

    1. Можно ли подавить вывод ошибки ECHO (Синтаксическая ошибка в имени файла, имени папки или метке тома.)?

    2. Почему выполнение ECHO не влияет на %errorLevel%?

    3. Возможно ли создать многострочный файл одной командой ECHO?

Ответы

  • «Подавить» ошибку нельзя, надо просто ее не допускать ее. Например, надо указать верный путь вместо неверного «error:data.txt». Если путь водится пользователем, то его следует проверить на правильность и выдать сообщение
    об ошибке если кто то напечатает неверный путь.

    Команда еcho никогда не отказывает и нужды выставлять/проверять код нет. Отказ у вас происходит в другой части скрипта где вы использовали заведомо неверный путь для переназначения вывода.

    Для создания файла с несколькими строками можно использовать команду for. Строки при этом должны быть разделены запятыми. То что вы использовали на деле создает одну строку. Кроме того если требуется то файл следует
    перед выводом удалить или очистить.

    @echo off

    set output=correct_file_name.txt

    set data=line1,line2,line2

    for %%l in (%data%) do echo %%l>>%output%


    This posting is provided «AS IS» with no warranties, and confers no rights.

    • Предложено в качестве ответа

      18 мая 2020 г. 22:28

    • Помечено в качестве ответа
      sergey-kuznet
      21 мая 2020 г. 14:23

Как заставить систему видеть путь в батнике?

Я сделал батник для удаления папки вот такой командой

rd /s /q «C:UsersАльтронAppDataLocalmRemoteNG»

Но батник выдаёт ошибку, пишет, что системе не удалось найти указанный путь. При этом та же команда в CMD работает и путь находится. В чём подвох?


  • Вопрос задан

    более трёх лет назад

  • 7176 просмотров

У вас в пути русские буквы.
По умолчанию кодировка в cmd cp866, а вы батник скорее всего сохранили в кодировке cp1251 (или того хуже в UTF8), поэтому и русские буквы у вас стали кракозябрами и такой путь найтись не может.

Либо добавьте перед вашей командой в батнике команду
chcp 1251
Либо сохраните батник в кодировке cp866 любы доступным средством, только убедитесь, что русские буквы правильно конвертировались.

Пригласить эксперта

А как прописать команду для cmd, если в пути есть папка на кириллице и с пробелами в пути?


  • Показать ещё
    Загружается…

04 июн. 2023, в 01:35

1500 руб./за проект

04 июн. 2023, в 01:25

40000 руб./за проект

03 июн. 2023, в 23:42

1500 руб./за проект

Минуточку внимания

i’m getting error when running this command:

for /f "delims=|" %f in ('dir /b y:dbb') do "Y:robocopy.exe" "y:dbb%f" "y:dba%fCertificates and deliverables" /e

"Y:robocopy.exe" "y:dbba 001" "y:dbaa 001Certificates and deliverables" /e

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------

  Started : Tue Mar 15 14:06:41 2011

   Source : y:dbba 001" y:dbaa
     Dest : y:dbb01Certificates

    Files : and
            deliverables"

  Options : /S /E /COPY:DAT /R:1000000 /W:30

------------------------------------------------------------------------------

2011/03/15 14:06:41 ERROR 123 (0x0000007B) Accessing Source Directory y:dbba 001" y:dbaa
The filename, directory name, or volume label syntax is incorrect.

i cannot seem to get it work, help pls.

atzz's user avatar

atzz

17.4k3 gold badges35 silver badges35 bronze badges

asked Mar 15, 2011 at 14:11

Andre's user avatar

When parsing the command line, some commands treat " as an escaped ".

You should double your backslash.

Also see This reference regarding the MSVCRT (a dependency walker shows robocopy uses the MSVCRT).

Let me suggest:

for /f "delims=|" %f in ('dir /b y:dbb') do "Y:robocopy.exe" "y:dbb%f\" "y:dba%fCertificates and deliverables" /e

answered Mar 15, 2011 at 14:21

Benoit's user avatar

BenoitBenoit

76.2k23 gold badges209 silver badges235 bronze badges

1

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Cmd msg ошибка 5
  • Cmd executenonquery ошибка
  • Cmd exe что это ошибка
  • Cmd exe системная ошибка

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии