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

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

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

Автор темы: 

При вводе в 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.

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

Your error is because you’re not using the REName command correctly.

This can be noted by entering Ren /? at the Command Prompt, which shows the syntax as:

REN [drive:][path]filename1 filename2

You however seem to be using:

REN [drive:][path]filename1 [drive:][path]filename2

…which will produce the error:

The syntax of the command is incorrect.

As a simple fix for your script, you’d need to change the following line:

set "str=%str:[1]=%"

to:

set "_fnlf=%str:[1]=%"

Then remove the line:

SET "_fnlf=%_filep%%str%"

If you wanted to tidy the code up you could probably change it to:

@Echo Off
Set "i=0"
For /F "Delims=" %%A In ('Dir /B/AD "%svnLOCAL%" 2^>Nul') Do (
    Set /A i+=1
    For /F "Delims=" %%B In ('Dir /B/A-D "%~dp0%%A*[1]*" 2^>Nul') Do (
        Set "$=%%~nB"
        Call Ren "%~dp0%%A%%B" "%%$:[1]=%%.jpg"
    )
)
Echo "%i%"
Pause

Or Using DelayedExpansion:

@Echo Off
Set "i=0"
For /F "Delims=" %%A In ('Dir /B/AD "%svnLOCAL%" 2^>Nul') Do (
    Set /A i+=1
    For /F "Delims=" %%B In ('Dir /B/A-D "%~dp0%%A*[1]*" 2^>Nul') Do (
        Set "$=%%~nB"
        SetLocal EnableDelayedExpansion
        Ren "%~dp0%%A%%B" "!$:[1]=!.jpg"
        EndLocal
    )
)
Echo "%i%"
Pause

In the two examples above, I’ve taken your comment, where filerename.bat is run, to mean the directory in which this script, filerename.bat, is located. If you meant the current working directory, which is not necessarily the same, you should replace the instances of %~dp0 above with %__CD__%.

Additionally, as is not clear from the information you’ve provided, I have assumed that %svnLOCAL% has already been defined.

  • Remove From My Forums
  • Question

  • Microsoft Windows [Version 6.0.6002]

    1) A Bat file, «test.bat», contains;

    ren E:ORACLESQLDMPTESTRPLX001.zip PLX001_%time%.zip
    PAUSE

    2) Execute «test.bat» and command window
    shows this output below on screen;

    ren E:ORACLESQLDMPTESTRPLX001.zip PLX001_16:05:07.30.zip
    A duplicate file name exists, or the file
    cannot be found.

    ————————————
    Clearly windows has found the file, «PLX001.zip»  because it has renamed it on screen with the time «PLX001_16:05:07.30.zip».

    But for some reason it still errors because it can’t find it? or considers «PLX001.zip» the same name as «PLX001_16:05:07.30.zip» ?

    How can this be?
    Why won’t it rename the actual file in the folder as it is doing on screen?

    Thank you for your time,
    Donald

Answers

  • for /f "tokens=1 delims=: " %%a in ('echo %time%') do set timehrs=%%a
    for /f "tokens=2 delims=: " %%a in ('echo %time%') do set timemin=%%a
    for /f "tokens=3 delims=:. " %%a in ('echo %time%') do set timesec=%%a
    ren file.bat file_%timehrs%.%timemin%.%timesec%.bat

    Echoing time variable uses a 24 Hour format. This should work fairly well…


    Steve Kline
    Microsoft Certified IT Professional: Server Administrator
    Microsoft Certified Technology Specialist: Active Directory, Network Infrastructure, Application Platform, Windows 7
    Microsoft Certified Product Specialist & Network Product Specialist
    Red Hat Certified System Administrator
    This posting is «as is» without warranties and confers no rights.

    • Marked as answer by

      Wednesday, May 4, 2011 8:13 PM

У меня есть несколько файлов в папке, например:

  1. Happysong.m4a.mp3
  2. Грустная песня ft. HERm4a.mp3

Я хочу переименовать их в:

  1. Счастливая песня.mp3
  2. Грустная песня ft. HERmp3

Вот мой код для
test.batфайл, который находится в той же папке:

      for /f "delims=" %%a in ('dir  /b /a-d *.m4a.mp3') do (
  set "oldName=%%~a"
  set "newName=%oldName:.m4a=%"
  ren %%a "%newName%"
)

Он возвращается
The syntax of the command is incorrect.
Я пытался:

      for /f "delims=" %%a in ('dir  /b /a-d *.m4a.mp3') do (
  set "oldName=%%~a"
  set "newName=%oldName:.m4a=%"
  ren %%a %newName%
)

который возвращает
ft. was unexpected at this time.
Что я здесь делаю неправильно?

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

Как сделать еще 1 задание Переименовать все файлы lab01.txt, Inf_lab02.txt … в каталоге К в lab01_Inf.txt, lab02_Inf.txt, … в командной строке прописывал

Bash
1
2
C:Windowssystem32>ren C:ЛабаK laba01.txt C:ЛабаK laba02_Inf.txt
Ошибка в синтаксисе команды.
Bash
1
2
C:Windowssystem32>ren C:ЛабаK laba01.txt laba02_Inf.txt
Ошибка в синтаксисе команды.

Вот получилось

Bash
1
2
C:Windowssystem32>ren C:ЛабаKlaba01.txt laba02_Inf.txt
Ошибка в синтаксисе команды.

Но что делать если список большой от 1 до 99 как прописать в этом случае
?

Добавлено через 45 минут
Как Заархивировать все файлы ( …) из каталога К и поместить их архив Ar на диск F.?

Добавлено через 22 минуты
ОС windows 7

Понравилась статья? Поделить с друзьями:
  • Ошибка в синтаксисе команды mkdir
  • Ошибка в синтаксисе команды cmd что это
  • Ошибка в синтаксисе команды clean all
  • Ошибка в симс отсутствует файл
  • Ошибка в симс 4 память не может быть