…Ошибка в синтаксисе команды
Раздел форума:
Автор темы:
При вводе в 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
PAUSE2) 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
-
Marked as answer by
У меня есть несколько файлов в папке, например:
- Happysong.m4a.mp3
- Грустная песня ft. HERm4a.mp3
Я хочу переименовать их в:
- Счастливая песня.mp3
- Грустная песня 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 | ||
|
Bash | ||
|
Вот получилось
Bash | ||
|
Но что делать если список большой от 1 до 99 как прописать в этом случае
?
Добавлено через 45 минут
Как Заархивировать все файлы ( …) из каталога К и поместить их архив Ar на диск F.?
Добавлено через 22 минуты
ОС windows 7