2015-03-25 45 views
0

任何人都可以帮我写下面的Powershell命令作为批处理文件吗?我将通过命令提示符执行该文件。我没有选择创建ps1文件并通过命令提示符执行它。在批处理文件中调用Powershell命令

谢谢。

$limit = (Get-Date).AddDays(-4) 
$path = "T:\FolderName" 

Get-ChildItem -Path $path -Recurse -Force -include *.txt | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force 

Get-ChildItem \\123.456.78.910\Y$\Z\*.txt | Where { $_.CreationTime -ge (Get-Date).AddMinutes(-30) } | % { Copy-Item $_.FullName -destination T:\FolderName } 
+0

检查:http://www.dostips.com/forum/viewtopic.php?f=3&t=5526 – npocmaka 2015-03-25 08:59:51

回答

3

您可以使用-command参数调用powershell.exe来执行此操作。您也可以使用分号分隔多个powershell命令。你应该双引号加双引号。

下面是一个例子:

powershell -command "$limit = (Get-Date).AddDays(-4); $path = 'T:\Folder Name';Get-ChildItem -Path $path -Recurse -Force -include *.txt | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force" 

powershell -command "$limit = (Get-Date).AddDays(-4); $path = 'T:\Folder Name';Get-ChildItem \\123.456.78.910\Y$\Z\*.txt | Where-Object { $_.CreationTime -ge (Get-Date).AddMinutes(-30) } | % { Copy-Item $_.FullName -destination 'T:\DestinationFolderName' }" 

编辑: 这里是它的一行版本仅具有单组的“”;所有引号内是单一的“

powershell -command "$limit = (Get-Date).AddDays(-2); $path = 'D:\Folder\Folder Name'; Get-ChildItem -Path $path -Recurse -Force -include *.txt | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } | Remove-Item -Force;Get-ChildItem \\123.456.25.123\D$\folder*.txt | Where-Object { $_.CreationTime -ge (Get-Date).AddMinutes(-30) } | % { Copy-Item $_.FullName -destination 'D:\Folder\Folder' }"; 
+1

谢谢你,但它提供了以下错误: 意外令牌” }'在表达式或语句中。 在线:1 char:175 + Get-ChildItem \\ 123.456.78.910 \ H $ \ Y \ *。txt |其中{$ _。CreationTime -ge(Get-Date).AddMinutes(-30)} | \文件夹\ AnotherFolder \ AnotherFolder} <<<< + CategoryInfo:ParserError:(}:字符串)[],ParentContainsErrorRecordException + FullyQualifiedErrorId:UnexpectedToken 我的Windows Server 2003标准版SP2和PowerShell的版本上应该为1.0,如果这将有所帮助。谢谢。 – Stackoverflowuser 2015-03-25 12:23:27

+1

我不得不承认,我不能在PowerShell 1.0中尝试这个,但我们用单引号而不是doubledoublequotes来尝试。我将编辑代码 – 2015-03-25 13:29:59

+1

它不适用于单引号:( – Stackoverflowuser 2015-03-25 14:37:18