【2. 创建文件夹】
New-Item 方法登场了,它的作用可不止创建文件夹,据说还可以创建注册表项等等。它的 -type 参数可以指定要创建的类型,-path 指定要在什么位置创建, -name 则指定要创建东西的名字,可以猜到 -value 会指定创建的内容(对文档,可以是它的内容;对目录,则不需要了)。
一个例子:
new-item -path c:/ -name logfiles -type directory
[在c盘下创建名为logfiles的文件夹]
不过咱志不止于此,还想用当前的日期来创建文件夹,并且如果存在该文件夹就不创建了……呵呵有点麻烦了。
得到日期很简单:
get-date
顺带说一下它相关的参数 -displayHint date 是说就显示日期部分就好了,否则get-date默认是得到日期和时间的(当然你还可以进一步用 -format 来格式化得到的日期格式)
不过判断某个文件夹是否存在,就要用到流程控制关键字 if 了。
抄一段 if 的语法
if (<test1>)
{<code_block1>}
[elseif (<test2)
{<code_block2>}]
[else
<code_block3>}]
呵呵还好和一般的编程语言里的if没啥区别。
昨天的说到Get-Item对用法,今天刚好拿来:
Get-ChildItem -name * -include $dateText
用 $dateText 变量保存前面获得的日期,用Get-ChildItem来获得该名字对应的文件夹名字,然后……嗯累了嘿嘿,具体解释明天补上。
-
- $dateText = get-date
- $dateText = $dateText.ToShortDateString() #转为短日期格式(去掉时间部分)
- $file = Get-ChildItem -name * -include $dateText
- if ( $file.count -eq $null ) # 井号是注释符, $null是预定义的变量,代表空
- {
- write-host "$file 不存在" #写在双引号里的变量在输出时会以其值替换,在单引号里的不会
- }
- else
- {
- write-host "$file 已经存在"
- }