Проверьте, существует ли файл, и запустите командный файл в PowerShell? - PullRequest
9 голосов
/ 14 ноября 2009

Это может быть простой вопрос, но я новичок в PowerShell и не смог найти способ сделать это. По сути, мне нужно запустить файл .BAT, если указанный файл не существует. Имя файла находится в виде паттерна, например « mmddyyy .dat» в папке, где mmddyyyy - это текущий месяц, день (префикс 0, если <10) и год. Псевдокоды будут выглядеть примерно так: </p>

 $File = "C:\temp\*mmddyyyy*.dat" # how to parse Get-Date mmddyyyy and build this pattern?
 #if $File exist # check any file exist?
     .\myBatch.bat  # run the bat file, can I run it in hidden mode?

Ответы [ 2 ]

23 голосов
/ 14 ноября 2009

Команда:

test-path .\example.txt

Возвращает True или False

Для Документов, как насчет официальной документации? Вот где я проверяю. http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx

также eggheadcafe.com имеет много примеров: http://www.eggheadcafe.com/conversationlist.aspx?groupid=2464&activetopiccard=0

Хотя я не пробовал регулярные выражения в Poweshell, это может помочь вам:

http://www.eggheadcafe.com/software/aspnet/33029659/regex-multiline-question.aspx

7 голосов
/ 14 ноября 2009

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

function GetDateFileName
{   
    $date = Get-Date
    $dateFileName = "$(get-date -f MMddyyyy).dat"
    return $dateFileName
}
$fileName = GetDateFileName
$filePath = "c:\temp\" + $fileName

if([IO.File]::Exists($filePath) -ne $true)
{
    #do whatever
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...