none
GПеременная в имени файла (папки) RRS feed

  • Вопрос

  • Не ругайтесь, я только учусь на Волшебника. Как в PoS создать файл с именем содержащим переменную, например текущую дату

    Get-Date -DisplayHint date -OutVariable dt

    Out-File C:\$dt.log -InputObject "******"

    не катит, лезет ошибка

    Имя "$dt" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правил
    ьность написания имени, а также наличие и правильность пути, после чего повторите попытку.

Ответы

Все ответы

  • Попробуйте, например, так:

    Out-File "c:\$($dt.ToShortDateString()).log"

    или так:

    Out-File "c:\$($dt.Year)$($dt.Month)$($dt.Day).log"

  • Попробуйте, например, так:

    Out-File "c:\$($dt.ToShortDateString()).log"

    или так:

    Out-File "c:\$($dt.Year)$($dt.Month)$($dt.Day).log"

    К сожалению не катит.В первом случае несовпадения данных вывода-ввода. Во втором - создается файл с пустым именем, но с расширением log. Может PoS вообще не приемлет в именование файлов/папок переменные определенные своим же командлетами
  • что-то вы не так набираете, я проверил оба варианта, перед тем как запостить. Они оба работают.

    покажите вашу команду и сообщение об ошибке.

  • 1 - PS C:\Windows\system32> Out-File "c:\$($dt.ToShortDateString()).log"
    Произошла ошибка при вызове метода, так как [System.Collections.ArrayList] не содержит метод
    с именем "ToShortDateString".
    строка:1 знак:22
    + $dt.ToShortDateString <<<< ()
        + CategoryInfo          : InvalidOperation: (ToShortDateString:String) [], RuntimeExcept
       ion
        + FullyQualifiedErrorId : MethodNotFound


     2 - Создается файл без имени, но с расширением log (.log)

  • покажите результат работы

    $dt| get-member

    Upd. был невнимателен тип $dt - System.Collections.ArrayList, а не DateTime, потому и не работает

     

    у вас, в результате выполнения вашей первой команды, переменная $dt, содержит массив дат, а не дату.

     

  • проще всего

    вместо Get-Date -DisplayHint date -OutVariable dt

    использовать $dt=Get-Date

    • Помечено в качестве ответа Elfimov_DI 28 мая 2010 г. 5:49
  • Спасибо за помощь и разъяснение! Оказлось все на много проще!