我的nas上有一个使用此路径的目录:\ nasname \ Software \ Build1.0 \ 在此目录中,您将找到软件组件。
目录的名称每天都在变化,例如现在是6.95a build xxxx。我想在运行我的脚本时将目录的内容复制到测试设置。如果每天都有相同的名字,那就是:
Copy-Item \\nasname\Software\Build1.0\file1.exe \\pc1\DATA\destinationfolder
Copy-Item \\nasname\Software\Build1.0\file2.exe \\pc1\DATA\destinationfolder
Copy-Item \\nasname\Software\Build1.0\file3.exe \\pc1\DATA\destinationfolder
Copy-Item \\nasname\Software\Build1.0\file4.exe \\pc1\DATA\destinationfolder
Build1.0
部分发生了很大的变化,所以我希望这一点有通配符。
在\\nasname\Software
中有2个目录,build1.0
和Old
。
所以它应该是\\nasname\software\***\file1.exe
等,但它不能选择OLD
目录!
我还尝试创建类似选择目录not "old"
或仅复制文件-notin "old"
的内容,但它似乎无法使其正常工作。
答案 0 :(得分:1)
您可以在路径中使用通配符,如下所示:
Copy-Item \\nasname\Software\Build*\file1.exe \\pc1\DATA\destinationfolder
Copy-Item \\nasname\Software\Build*\file2.exe \\pc1\DATA\destinationfolder
Copy-Item \\nasname\Software\Build*\file3.exe \\pc1\DATA\destinationfolder
Copy-Item \\nasname\Software\Build*\file4.exe \\pc1\DATA\destinationfolder
或者,如果您只想复制四个文件,您也可以使用通配符文件名并使用一个内容:
Copy-Item \\nasname\Software\Build*\file*.exe \\pc1\DATA\destinationfolder
答案 1 :(得分:1)
如果构建过程正在创建目录,则可以利用目录的最后写入时间戳。像这样,
$buildPath = '\\nas\my\build'
# Get a list of directories, sort descending by write time and pick the first one
$mostRecentDir = gci $buildPath |? { $_.psIscontainer } | sort -Property LastWriteTime -Descending | select -first 1
# Get the full path to the most recent directory
$mostRecentDir.FullName