我一直很成功地使用它,直到有人弄乱了这个文件。
因此我需要隐藏文件或将其移动到隐藏文件夹。我遇到的问题是它会在其所在的目录中创建新文件夹。
我希望它在父目录中创建新文件夹。
###Get the year entered by the user
$year = Read-Host "Please enter year"
$nextyear = [int]$year + 1
$yearfolder = "$year-$nextyear"
###Set the starting date
$startdate = [DateTime] "01 April $($year)"
$count = 1
###Set the file's path by combining the folder path and the filename
$filename = join-Path -Path (Get-location) -ChildPath "a.txt"
###Create folder based on the year entered by the user
New-Item -ItemType Directory -Name "$($yearfolder)"
###Change directory to the newly created folder
cd "$($yearfolder)"
While ( $count -lt 13)
{
###Create folders
$newfolder = "$($count.ToString('00')) - $($startdate.ToString('MMMM yyyy'))"
New-Item -ItemType Directory -Name "$newfolder"
#Copy file to new folder
Copy-Item -Path $filename -Destination $newfolder
#Add one month
$startdate = $startdate.AddMonths(1)
#Increment the counter
$count = $count + 1
}
答案1
您可以使用相对路径。
因此,如果您的路径是"..\MyPath"
并且您创建了该路径,它将被创建为高一级,然后作为该文件夹的子路径。
类似地,如果您指定:"..\..\..\Folder\Another"
它将上升 3 个级别,然后进入文件夹 Folder(但该文件夹必须存在),然后创建另一个。
同样,您可以使用"\Folder\MyFolder"
在根目录中创建文件夹,然后创建子文件夹 Folder,然后创建 MyFolder,它将使用当前驱动器。这样,您的脚本就可以在拇指驱动器上工作,而无需知道它具有哪个驱动器号。
考虑到这一点,您可以简单地使用以下代码:
$yearfolder = "..\$year-$nextyear"
或者如果你想要安全的话:
$yearfolder = "..\$($year)-$($nextyear)"
使用 $(...) 基本上允许您将任何命令或变量放入字符串中。
例如这是行不通的:
$user = Get-ADUser -filter * | select -first 1
Write-host "We found $user.FullName"
但这会起作用:
$user = Get-ADUser -filter * | select -first 1
Write-host "We found $($user.FullName)"