Как использовать пробелы в командной строке?

Как использовать пробелы в командной строке Windows?

  cmd/CC:  Program Files (x86)  WinRar  Rar.exe a D:   Hello 2  File.rar D:  Hello 2  *. *  

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

  cmd/C "" C:  Program Files (x86)  WinRar  Rar  .exe "a" D:  Hello 2  File.rar "" D:  Hello 2  *. * ""  

87

Я только что понял, что для случая, когда путь включает использование символов пробела, например, когда мне нужно доступ к приложению xyz , расположение которого:

  C:  Program Files  ab cd  xyz.exe  

Чтобы запустить это из командной строки Windows, вам необходимо использовать

  C:  "Program Files"  "ab cd"  xyz.exe  

или

  "C:  Program Files  ab cd  xyz.exe"  

Поделиться
Улучшить этот ответ
12 июня ’18 в 15: 1 6
ghbarratt
10.6k44 золотых знака3737 серебряных знаков4141 бронзовых знаков
ответил 8 ноября 2013 в 13:16
  • 1
    Я пробовал это, но, похоже, в моем случае не работает: python “” C: Program Files (x86) Jenkins workspace Модульный тест Map Checker sqs-poller node_modules map-checker python unit_test.py “-d” C: Program Files (x86) Jenkins workspace Map Checker Unit Test MAP_CHECK_TMP #Test Case “-o” C: Program Files (x86) Jenkins workspace Модульный тест Map Checker MAP_CHECK_TMP #Test Case “-o2” C: Program Files (x86) Jenkins workspace Модульный тест Map Checker MAP_CHECK_TMP #Test Case testcase_results.csv “” -l “C: Program Files (x86) Jenkins workspace Модуль проверки карты MAP_CHECK_TMP” -restore “. может помочь? – hafizan 07 июл.2020, в 9:04
добавить комментарий |

Я только что понял, что для случая, когда путь включает использование символов пробела, например, когда мне нужно получить доступ к app xyz , расположение:

  C:  Program Files  ab cd  xyz.exe  

Чтобы запустить это из командной строки Windows, вам необходимо использовать

  C:  "Program Files"  "ab cd"  xyz.exe   

или

  "C:  Program Files  ab cd  xyz. exe " 

25

Если двойные кавычки не решают проблему, тогда попробуйте, например,

  dir/X ~ 1 c:   

, чтобы получить список альтернативные имена файлов или каталогов. Пример вывода:

  11.09.2014 12:54 AM 8,065 DEFAUL ~ 1.XML Default Desktop Policy.xml06/12/2014 03:49  PM  Программные файлы PROGRA ~ 1 10/12/2014 12:46 AM  Программные файлы PROGRA ~ 2 (x86)  

Теперь используйте короткий 8-символьный файл или имя папки в 5-м столбце, например PROGRA ~ 1 или DEFAUL ~ 1.XML, в ваших командах. Например:

  установите JAVA_HOME = c:  PROGRA ~ 1  Java   jdk1.6.0_45  

Поделиться
Улучшите этот ответ
отредактировано 27 июля ’18 в 15:50
jtth 73699 серебряных знаков2727 бронзовых знаков
6 янв. ’15 в 3:36
  • Это простой способ. Никакой гадости с двойными кавычками. – Дэйв Андерсон, 25 февраля 2015, 20:34
  • 1
    Знаете ли вы, что short 8.3 является опцией NTFS и может быть отключен? Не надейтесь на это. – Зан Линкс 28 мая ’19 в 2:26
добавить комментарий |

Если двойные кавычки не решают проблему, попробуйте, например,

  dir/X  ~ 1 c:   

, чтобы получить список альтернативных имен файлов или каталогов. Пример вывода:

  09.11.2014 00:54 8065 DEFAUL ~ 1.XML Default Desktop Policy.xml06/12/2014 15:49 PM  PROGRA ~  1 Program Files 10/12/2014 12:46 AM  PROGRA ~ 2 Program Files (x86)  

Теперь используйте короткое 8-символьное имя файла или папки в 5-м столбце , например PROGRA ~ 1 или DEFAUL ~ 1.XML в ваших командах. Например:

  установите JAVA_HOME = c:  PROGRA ~ 1  Java  jdk1.6.0_45  

11

Заключите пути, содержащие пробелы, в двойные кавычки.

  cmd/C "C:  Program Files (x86)  WinRar  Rar.exe" a "D:  Hello 2  File.rar" "D:  Hello 2  *. * " 

Поделиться
Улучшите этот ответ
ответил 16 июня ’11 в 17:34
  • Тогда проблема заключается в том, каков на самом деле синтаксис аргументов Rar.exe . Возможно, вы его неправильно используете. Попробуйте "D: Hello 2 " или " D: Hello 2 " вместо " D: Hello 2 *. * "? – JAB 16 июня ’11 в 18:09
  • cmd/C “C: Program Files (x86) WinRar Rar.exe” a D: Hello File.rar D: Hello *. * (Это не есть пробелы, и это работает), но как бороться с пробелами? – faressoft 16 июня 2011 г., 18:29
  • @JAB, если вам нужно исключить f Файл имеет имя с пробелами, например CEEMEA & LATAM.doc . Что это должно быть? "C: Program Files WinRAR rar" a -x * CEEMEA & LATAM.doc ".rar" – Ибн и Ашик, 29 августа 2017 г., 7:30
добавить комментарий |

Заключите пути, содержащие пробелы, в двойные кавычки.

  cmd/C "C  :  Program Files (x86)  WinRar  Rar.exe "a" D:  Hello 2  File.rar "" D:  Hello 2  *. * " 

11

Я предпочитаю заключать команду в () , который является допустимым batch , что упрощает чтение:

  cmd/C ("C:  Program Files (x86  )  WinRar  Rar.exe "a" D:  Hello 2  File.rar "" D:  Hello 2  *. * ")  

Поделиться
Улучшить этот ответ
ответил 27 фев. 2016 в 01:10
добавить комментарий |

Я предпочитаю заключать команду в () , что является допустимым пакетом , который немного упрощает чтение:

  cmd/C ("C:  Program Files (x86)  WinRar  Rar.exe" a "D:   Hello 2  File.rar "" D:  Hello 2  *. * ")  

10

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

Для файлов:

  вызов "C:  example file". exe " 

Для каталога:

  cd" C:  Users  User Name  New Folder " 

CMD интерпретирует текст в двойных кавычках («xyz») как одну строку, а текст в одинарных кавычках (‘xyz’) как команду. Например:

FOR %% A in (‘dir/b/s * .txt’) do (‘command’)

FOR %% A in (‘dir/b/s * .txt ‘) do (echo “%% A”)

И одна хорошая вещь, cmd * не чувствителен к регистру, как bash. Итак, “New fiLE.txt” и “new file. TXT “похож на него.

* Примечание. Переменные %% A в приведенном выше регистре чувствительны к регистру (%% A не равно %% a).

Поделиться
Улучшить этот ответ
отредактировано 17 мая ’20 в 17 : 42
ответил 17 февраля ’16 в 21:01
  • Делайте подчеркивания в именах файлов считать? Как «имя_файла» против «имени файла» – SqueakyBeak 8 янв.2020 в 16:26
добавить комментарий |

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

Для файлов:

  вызовите «C:  example file.exe»  

Для каталога:

  cd "C:  Users  User Name  New Folder"  

CMD интерпретирует текст в двойных кавычках (“xyz”) как одну строку и текст в одинарных кавычках (‘xyz’) в виде команды. Например:

FOR %% A in (‘dir/b/s * .txt’) do (‘ command ‘)

FOR %% A in (‘ dir/b/s * .txt ‘) do (echo “%% A”)

И хорошо, что cmd * не чувствителен к регистру, как bash. Так что «Новый файл .txt» и «новый файл.TXT» ему одинаковы.

* Примечание. Переменные %% A в приведенном выше регистре чувствительны к регистру (%% A не равно %% a).


3
  set "CMD = C:  Program Files (x86)  PDFtk  bin   pdftk "echo cmd/K" "% CMD%"% D% output trimmed.pdf "start cmd/K" "% CMD%"% D% output trimmed.. pdf " 

это сработало для меня в пакетном файле

Поделиться
Улучшить этот ответ
ответил 29 сен 2015, 17:55
добавить комментарий |

  set "CMD = C:  Program Files (x86)  PDFtk  bin  pdftk" echo cmd/K ""% CMD% "% D% вывод обрезан  .pdf "start cmd/K" "% CMD%"% D% output trimmed.pdf " 

это сработало для меня в пакетном файле


2

Просто добавьте кавычки

Пример: “C: Users User Name”

Надеюсь, он решен!

Поделиться
Улучшить этот ответ
ответил 25 мая ’19 в 17:35
  • 7
    То же самое уже было сказано полдюжины раз. Какую дополнительную ценность это добавляет? – JJJ 25 мая ’19 в 6:02
добавить комментарий |

Просто добавьте кавычки

Пример: “C: Users Имя пользователя “

Надеюсь, он решен!


0

Попробуйте использовать кавычки.

  cmd/C "C:  Program Files (x86)  WinRar  Rar.exe  "a" D:  Hello 2  File.rar "" D:  Hello 2  *. * " 

Поделиться
Улучшить этот ответ
ответил 16 июня ’11 в 17:36
  • 2
    Это ненадежно. В определенных случаях (см. Microsoft. com/resources/documentation/windows/xp/all/proddocs/… – обработка кавычек) вместо этого выполняется файл «C: Program.bat». – Micha Wiedenmann 8 сен. ’14 в 06:51
добавить комментарий |

Вам следует попробовать использовать кавычки.

  cmd/C "C:  Program  Файлы (x86)  WinRar  Rar.exe "a" D:  Hello 2  File.rar "" D:  Hello 2  *. * " 

0

Пробелы в приглашении к сообщению (в строке командного кода оболочки VBA)

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

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

В качестве примера … скажем, у меня есть папка с текстовым файлом в ней, например, в

C: Alans Folder test1.txt (https://imgur .com/FELSdB6)

Пробел в имени папки вызывает проблему.

Что-то вроде этого могло бы работать, если папка AlansFolder существует

  Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent () Shell "cmd.exe/c" "ipconfig/all> C:  AlansFolder  test1.txt" "" End Sub  

Это не сработает. (Ошибка не будет).

  Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent () Shell "cmd.exe/c" "ipconfig/all> C:  Alans Folder  test1.txt" "  "End Sub  

Включение пар кавычек вокруг пути заставит его работать

  Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent () Shell" cmd.exe/ c "" ipconfig/all> "" C:  Alans Folder  test1.txt "" "" "End Sub  

(Кстати, если текстовый файл не существует , тогда это будет сделано).

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

Преобразование этой строки кода в команду, заданную вручную, мы будет

  ipconfig/all> "C:  Alans Folder  test1.txt"  

Кажется, работает

Это также работает

  ipconfig/all> C:  AlansFolder  test1.txt  

Это не

  ipconfig/all> C:  Alans Folder  test1.txt  

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

  cmd.exe/ c "ipconfig/all>" C:  Alans Folder  test1.txt ""  

Поделиться
Улучшить этот ответ
ответил 15 декабря ’19 в 17:42
добавить комментарий |

Пробелы в приглашении с благодарностью (в строке командного кода оболочки VBA)

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

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

В качестве примера … скажем, у меня есть папка с текстовым файлом в ней, например, в

C: Alans Folder test1.txt (https://imgur .com/FELSdB6)

Пробел в имени папки указывает на проблему.

Примерно так будет работать, если папка AlansFolder существует

  Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent () Shell "cmd.exe/c" "ipconfig /all> C:  AlansFolder  test1.txt "" "End Sub  

Это не сработает. (Ошибка не будет).

  Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent () Shell "cmd.exe/c" "ipconfig/all> C:  Alans Folder  test1.txt" "  "End Sub  

Включение пар кавычек вокруг пути заставит его работать

  Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent () Shell" cmd.exe/ c "" ipconfig/all> "" C:  Alans Folder  test1.txt "" "" "End Sub  

(Кстати, если текстовый файл не существует , тогда это будет сделано).

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

Преобразование этой строки кода в команду, заданную вручную, мы будет

  ipconfig/all> "C:  Alans Folder  test1.txt"  

Кажется, работает

Это также работает

  ipconfig/all> C:  AlansFolder  test1.txt  

Это не

  ipconfig/all> C:  Alans Folder  test1.txt  

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

  cmd.exe/c  "ipconfig/all>" C:  Alans Folder  test1.txt ""  

-3

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

C: Windows system32> cd c: Program Files MongoDB Server 3.2 bin

c: Program Files MongoDB Server 3.2 bin> вызов командной строки mongonow mongo.exe

Поделиться
Улучшите этот ответ
ответил 17 марта ’16 в 13:24
добавить комментарий |

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

C: Windows system32> cd c: Program Files MongoDB Server 3.2 bin

c: Program Files MongoDB Server 3.2 bin> вызов командной строки mongonow mongo.exe

Оцените статью
futurei.ru
Добавить комментарий