1

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

Пример:

$colonVar = "Colon:string"
echo "fileContents" > "file$colonVar.txt"

доходность

Не могу найти диск. Диск с именем fileColon не существует.

Можем ли мы вместо этого записать "fileContents" в файл с именем «fileColon:string.txt»?

Мне не удалось использовать какую-либо комбинацию одинарных или двойных кавычек, escape-символов, скобок или знака доллара и скобок в строковом значении или строке перенаправления. Часть строки после двоеточия всегда рассматривается как диск.

(Использование Powershell 2.0)

1 ответ1

1

В Windows у вас не может быть файла с двоеточием в его имени, поэтому не PowerShell предотвращает это, это файловая система. Удалите двоеточие и / или замените его символом, допустимым для имен файлов.

С https://support.microsoft.com/en-us/kb/177506:

A filename cannot contain any of the following characters: 
\ / : * ? " < > | 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .