Как избежать пробелов в путях к файлам в командной строке Windows

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

Как использовать пробелы в командной строке 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  *. * "" 


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

 C:  Program Files  ab cd  xyz.exe 

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

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

или

 "C:  Program Files  ab cd  xyz. exe "

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

 dir/X ~ 1 c:  

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

 11.09.2022 12:54 AM 8,065 DEFAUL ~ 1.XML Default Desktop Policy.xml06/12/2022 03:49  PM  Программные файлы PROGRA ~ 1 10/12/2022 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 бронзовых знаков


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

 dir/X  ~ 1 c:  

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

 09.11.2022 00:54 8065 DEFAUL ~ 1.XML Default Desktop Policy.xml06/12/2022 15:49 PM  PROGRA ~  1 Program Files 10/12/2022 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 

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

 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 июня 2022 г., 18:29

  • @JAB, если вам нужно исключить f Файл имеет имя с пробелами, например CEEMEA & LATAM.doc . Что это должно быть? "C: Program Files WinRAR rar" a -x * CEEMEA & LATAM.doc ".rar" — Ибн и Ашик, 29 августа 2022 г., 7:30

:/>  Диск в диспетчере задач загружен на 100%

добавить комментарий |


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

 cmd/C "C  :  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  *. * ") 


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

Для файлов:

 вызовите «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).



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

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



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

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

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



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

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

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

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

:/>  Ключи активации Windows 8.1 (64 и 32 bit)

Таким образом, это может помочь другим с аналогичной проблемой: поскольку синтаксис с кавычками всегда трудно получить да, я думаю, что показ конкретных примеров всегда полезно. Дополнительная проблема, с которой вы сталкиваетесь при использовании командной строки в 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 "" 

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

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

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

:/>  Переустанавливаем Windows 10 с сохранением лицензии

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

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 "" 


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

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

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

Оставьте комментарий

Adblock
detector