alex
alex
а не даёт экранировать пробел
alex
может как то   вставить?
alex
fmt.Sprint("C:\\Users\\20_RELEASES_UAT\\1Q\\feb\\11.1.2.306.001\ (07.02.2022)\\2178253\\Metadata\\file.csv")
alex
Пишет invalid escape sequence
alex
alex
The Windows command-line interpreter uses a caret character ( ^ ) to escape reserved characters that have special meanings
alex
попробовал экранировать с ^
alex
не знаю что это, но лог стал нечитабельным))
alex
Harry
Vitaly
alex
в общем с экраном ^ тоже не работает, также выдаёт File not found exception и делит путь по полам там где пробел:
"C:\Users\11.1.2.306.001^ (The filename, directory name, or volume label syntax is incorrect)
alex
alex
думается, что виндовая cli не воспринимает кавыки, которые выдаёт golang,
т.е. не воспринимает имя файла после кавычек как один аргумент до следующих
alex
другими словами, вероятно golang в exec.Command выдаёт другой символ кавычек, не тот который использует cli
Bagasl
Bagasl
Ты вообще не используешь кавычки
alex
fmt.Sprint("\"", params[i][2], "\"")
alex
это не кавычки?
Bagasl
Bagasl
Загугли
Bagasl
Сомневаюсь, что никто не сталкивался с таким
alex
да уж обуглился
alex
второй день гуглюсь
alex
причём даже получилось сделать так чтобы всё гарантированно работало
alex
вместо cmd.exe стартую powershell.exe
alex
и она кавычки воспринимает правильно и пробел между ними заглатывает на ура
alex
в общем юзайте powershell при случае, как сделать это на cmd мне пока не понятно
Рик
alex
на гоу делаю утилиту которая работает вот так
alex
importdim file "C:\path\eshe odin\file.csv"
alex
гоу забирает параметры из командной строки получается два параметра:
1. file
2. C:\path\eshe odin\file.csv
alex
далее в утилите дёргается выполнение виндовой командной строки cmd.exe и в т.ч. передаётся этот путь файла
C:\path\eshe odin\file.csv
alex
но cmd.exe его воспринимает как два параметра
alex
в итоге ищет файл C:\path\eshe и пишет что не найдено
Рик
Пробел да?
alex
да
alex
на самом деле не пробел а кавычки
alex
в смысле заменить путь на вот такой?
C:\path\'eshe odin'\file.csv
alex
это первое что попробовал))
alex
заключение в кавычки не решило проблему:
fmt.Sprint("\"", path, "\"")
fmt.Sprintf("%q", path)
cmd просто добавляет кавычку и ошибка таже: "C:\path\eshe
alex
это что значит?
alex
на shell подозреваю такой проблемы нет, но ради решения вопроса на виндовый сервер ставить какой нибудь cygwin и переписывать всё под это дело - гемор чрезмерный
alex
что это значит?
Рик
Попробуй
cmd := []string{"cmd", "/C", "file", "C:\path\eshe odin\file.csv"}
exec.Command(cmd...)
alex
так ужеж сделал не сработало
alex
Abbos
Привет, может кто помочь, при get запросе я должен отдать последнее состояние строки, но если оно пустое то я должен подождать пока оно обновится, как это можно реализовать?
alex
alex
не заходит
Рик
Рик
cmdStr...
alex
не понял
alex
где три точки?
Рик
exec.Command(cmdStr...)
Рик
Понял?
alex
alex
что значит такой синтаксис?
Рик
Подожди
Рик
Вот так
cmd := []string{"/C", "file", "C:\path\eshe odin\file.csv"}
exec.Command("cmd.exe", cmd...)
alex
alex
not гут
Рик
Троеточие
Рик
ТРОЕТОЧИЕ
alex
ух как
alex
шайтан
alex
Рик
Получилось?
alex
норм
alex
сейчас проверим
alex
т.е. оно теперь cmdStr как строку воспринимает?
Рик
alex
понятно
alex
не хочет
alex
песня та же
alex
File not found exception: "C:\Users\11.1.2.306.001
alex
но ... сами по себе работают - буду знать)
Рик
У меня идеально работает, что-то не то делаешь
Abbos