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

Всем привет!
Недавно начал изучать язык Java. Пишу простенькую программу, в которой функция получает два параметра из командной строки. Первый аргумент — число, второй — строка. Проблема в том, что когда я ввожу символ, например «>», вылезает «ошибка в синтаксисе команды». Получаемую строку я записываю в String. Вопрос: как сделать так, чтобы из командной строки можно было читать любые символы?
Код:

public static void main(String args[]){
   double degree = Double.parseDouble(args[0]);
   System.out.println(degree);
   String str = args[1];
   System.out.println(str);
   }

задан 24 сен 2017 в 21:32

user248155's user avatar

user248155user248155

1432 золотых знака4 серебряных знака12 бронзовых знаков

2

Символ > — особенный.

command > a

На языке командной строки (как bash, так и cmd.exe) это означает:

  1. Выполнить программу command.
  2. Всё, что она «печатает» (т.е. выводит в стандартный поток вывода, stdout) перенаправить
  3. … и писать в файл a вместо его прошлого содержимого. Если файла нет — создать новый.

Поэтому когда вы передаёте командной строке вот такое:

java helloworld >

Она это воспринимает так:

  1. Выполнить java helloworld
  2. И перенаправить вывод
  3. Куда? А никуда. Ошибка в синтаксисе команды!

Поэтому делайте так:

java helloworld ">"

ответ дан 29 сен 2017 в 5:30

Nick Volynkin's user avatar

Nick VolynkinNick Volynkin

33.6k24 золотых знака128 серебряных знаков217 бронзовых знаков

2

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

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

Автор темы: 

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

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


Автор:

Louise Ward


Дата создания:

5 Февраль 2021


Дата обновления:

11 Июнь 2023


Курс по React JS. #2 Авторизация пользователя. Цепочка Promises. Async await. Обработка ошибок

Видео: Курс по React JS. #2 Авторизация пользователя. Цепочка Promises. Async await. Обработка ошибок

Содержание

  • Копирование файла с пробелом
  • Перемещение файла с пробелом в имени файла
  • Переименование файла с пробелом в имени файла

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

Например, если бы у нас был каталог или имя файла под названием «компьютерная надежда», вы должны ввести следующие команды.

Копирование файла с пробелом

В этом первом примере мы копируем файл «computer hope.txt» в каталог Hope. Если файл не заключен в кавычки, вы получите сообщение «Неверный синтаксис команды». сообщение об ошибке.

скопируйте «компьютер надежда.txt» надежда

Перемещение файла с пробелом в имени файла

Затем следующая команда переместит файл «computer hope.txt» в каталог Hope. Опять же, без кавычек вы получите сообщение об ошибке.

переместить «компьютер надежда.txt» надежда

Переименование файла с пробелом в имени файла

Наконец, следующая команда переименует тот же файл в пример file.txt, который также имеет пробел в имени файла.

переименуйте «компьютер» hope.txt «в» example file.txt »

Hakeel

0 / 0 / 0

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

Сообщений: 1

1

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

05.01.2021, 14:59. Показов 3047. Ответов 2

Метки bat, batch, batch file, cmd, error, windows (Все метки)


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

Привет всем. Пишу интересную утилиту для windows. Но это не важно.
Я пришёл суда с другим вопросом. Когда я пишу команду консоль закрывается. Перед тем как закрыться на секунду проскакивает сообщение ошибка в синтаксисе команды. Я новичок. Спасибо

Код:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
@echo off
title SuperTool 1.0
:start
echo Welcome to SuperTool 1.0! Write help to show command list.
:1
set /p command=">>>"
set /a command1="exit"
set /a command2="help"
set /a command3="ver"
set /a command4="fc"
set /a command5="of"
set /a command6="del"
set /a command7="run"
set /a command8="clear"
set /a command9="reset"
set /a command10="exit"
set /a command11="create"
set /a command12="colorsettings"
set /a command13="ColorRed"
set /a command14="ColorGreen"
set /a command15="ColorYellow"
set /a command16="Default"
set /a command17="fup"
set /a command18="format"
if %command%==%command2% (
goto help
)
if %command%==%command3% (
echo 1.0
)
if %command%==%command4% (
set /p foldername="Enter folder name: "
MD %foldername%
)
if %command%==%command5% (
set /p foldername="Enter folder name: "
cd %foldername%
if not exist %foldername% (
echo Folder not found.
)
)
if %command%==%command6% (
set /p filename=="Enter file name"
del %filename%
if not exist %filename% (
echo File not found.
)
)
if %command%==%command7% (
set /p filename2=="Enter file name"
%filename2%
if not exist %filename2% (
echo File not found.
)
)
if %command%==%command8% (
cls
)
if %command%==%command9% (
Choice /M "Are you sure?"
If Errorlevel 2 Goto No
If Errorlevel 1 Goto Yes
 
:No
goto 1
 
:Yes
goto start
)
if %command%==%command10% (
Choice /M "Are you sure?"
If Errorlevel 2 Goto No
If Errorlevel 1 Goto Yes
 
:No
goto 1
 
:Yes
exit
)
if %command%==%command11% (
set /p filename3="Enter file name: "
copy con %filename3%
)
if %command%==%command12% (
goto color
)
if %command%==%command13% (
color 4
)
if %command%==%command14% (
color a
)
if %command%==%command15% (
color e
)
if %command%==%command16% (
color f
)
if %command%==%command17% (
cd ..
)
if %command%==%command18% (
Choice /M "Are you sure?"
If Errorlevel 2 Goto No
If Errorlevel 1 Goto Yes
 
:No
goto 1
 
:Yes
del SuperTool.bat
)
goto 1
:help
echo help - show this command list
echo ver - show system version
echo fc - create folder(fc {folder_name})
echo del - delete (del {file_name})
echo of - openfolder(of {folder_name})
echo run - run programm(run {file_name})
echo clear - clear console
echo create - create file(create {file_name})
echo reset - reload system
echo exit - exit
echo colorsettings - open color settings
echo fup - goto previus folder
echo format - dell all
goto 1
:color
echo ColorRed - set color text to red
echo ColorYellow - set color text to yellow
echo ColorGreen - set color text to green
echo default - set default color
goto 1
pause
exit



0



b0gus

719 / 319 / 132

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

Сообщений: 803

05.01.2021, 23:06

2

1) set /a меняем на set
2) команды сравнения записываем так:

Windows Batch file
1
if "%command%"=="%command7%" ...



0



4332 / 2122 / 661

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

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

06.01.2021, 02:37

3

+ ни одна переменная в if … (тут) после ее назначения в set /p не раскроется, нужно: setlocal enabledelayedexpansion, ищите читайте что это, вы разработчик, надо знать детали до мелочей
строка в echo со скобками вида () вызовет ошибку, их надо экранировать, ищите как.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

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

Сообщений: 92,604

06.01.2021, 02:37

Помогаю со студенческими работами здесь

Ошибка в синтаксисе
Здравствуйте, компилятор выдает ошибку в синтаксисе, в этой строчке : for y in…

Ошибка в синтаксисе
Помогите пож. Недавно начал изучать язык. Нашел интересное пособие, где есть хорошая учебная база,…

Ошибка в синтаксисе
Range("A5:E5" & Cells(Rows.Count, 1).End(xlUp).Row).Sort Key1:=Range("A5"), _

Ошибка в синтаксисе
<?php

if (isset($siteuri)) {$siteuri="da";} else {$siteuri="nu";}
if (isset($carti))…

Ошибка в синтаксисе
Delimiter //
DROP PROCEDURE IF EXISTS proc5 //
CREATE PROCEDURE proc5(IN c VARCHAR(100),IN wf…

Ошибка в синтаксисе
Привет! Очень мало работала в матлабе, срочно приходится разбираться, мне нужно решить задачу…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

3

Синтаксическая ошибка сообщения об ошибке рядом с неожиданным токеном `(‘ возникает в среде типа Unix, Cygwin и в интерфейсе командной строки в Windows. Эта ошибка, скорее всего, будет вызвана при попытке запустить сценарий оболочки, который был отредактирован или созданный в старых системах DOS / Windows или Mac.

Ошибка синтаксиса рядом с неожиданным токеном `('

Это сообщение об ошибке также появляется, когда вы вводите команды в командной строке Linux для повседневных задач, таких как копирование файлов вручную и т. Д. Основные причины появления этого сообщения об ошибке либо из-за неправильного синтаксиса, либо из-за проблемы ОС при интерпретации команд другой системы / оболочка.

Что вызывает синтаксическую ошибку рядом с неожиданным токеном `(‘?

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

  • Неверный синтаксис при выполнении любой команды на любой платформе. Либо вы неправильно используете команду, либо ввели неправильный синтаксис.
  • Оболочка несовместима между системами Unix / DOS.
  • Возникли проблемы с запуском сценария оболочки bash из другого источника .

В этой статье мы предполагаем, что вы знаете основы программирования и имеете представление о том, что делаете. Если вы новичок, лучше всего следовать подробным инструкциям по языку / команде, которую вы пытаетесь выполнить. Вероятно, вы ошиблись в синтаксисе.

Решение 1. Проверка синтаксиса и формата команд

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

Кроме того, следует уделять особое внимание дополнительному пространству , использованию двойных кавычек и обязательным параметрам. Если какие-либо из них отсутствуют или были объявлены неправильно, вы не сможете выполнить свой код.

Например, вместо следующего кода

[mycom7] # ./ctopo.sh um_test1 [(1,2), (2,1)]

Вам нужно выполнить его как

[mycom7] # ./ctopo.sh um_test1 "[(1,2), (2,1)]"

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

Из-за типа параметра необходимы двойные кавычки. Дополнительное пространство также может испортить ваш код и вызвать сообщение об ошибке. Убедитесь, что вы проверили официальную документацию команды, которую вы выполняете, и посмотрите, есть ли там проблема.

Решение 2. Устранение неполадок сценария оболочки

Если вы используете сценарий оболочки, который работает в исходной системе, но возвращает ошибку в целевой системе, вы можете устранить неполадки сценария, проверив переменные, которые хранятся во время выполнения, а затем посмотреть, что вызывает проблему. Это очень частая причина, поскольку в некоторых случаях оболочка пытается интерпретировать непечатаемый символ.

Попробуйте запустить оболочку с параметром vx. Это покажет нам, какие команды выполняются и какие значения хранятся в скрипте. Здесь вы можете устранять неполадки и диагностировать, что не так.

Например, выполните скрипт в терминале после включения vx как:

# sh -vx ./test_script5.sh

Вы можете проверить содержимое скрипта, используя команду cat как:

# cat test_script5.sh

Решение 3. Использование команды dos2unix.exe

В текстовых файлах Windows / DOS новая строка представляет собой комбинацию символа возврата каретки ( r), за которым следует перевод строки ( n). В Mac (до Mac OS X) для переноса строки использовался простой возврат каретки ( r). Unix / Linux и Mac OS X используют перевод строки ( n). Если вы используете Cygwin, он не сможет обработать сценарии, созданные DOS / Windows и более ранними версиями Mac из-за дополнительного символа возврата каретки ( r).

Использование команды dos2unix.exe

Здесь вы можете создать команду ‘dos2unix.exe’, которая преобразует скрипт в правильный формат, а затем вы можете выполнить его без каких-либо проблем.

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

Понравилась статья? Поделить с друзьями:
  • Ошибка в симс отсутствует файл
  • Ошибка в симс 4 память не может быть
  • Ошибка в симс 4 wickedwhims exception
  • Ошибка в симс 4 de4ee14f 29f00e76 00000000 4b0d852b
  • Ошибка в симс 4 0e6d1221