Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
暂停Powershell脚本并继续_Powershell_Resume - Fatal编程技术网

暂停Powershell脚本并继续

暂停Powershell脚本并继续,powershell,resume,Powershell,Resume,我有一个脚本,它当前使用ForEach对象循环从CSV中提取文件位置并将文件上载到数据库 我想要它做的是上传1000个文件,然后能够暂停循环,稍后从文件1001恢复循环 我不想使用Start Sleep命令,因为我不希望脚本在设定的时间后自动恢复 这是一次性交易,所以我不想将其转换为工作流 可以使用什么命令或cmdlet来完成此任务 如果有一种方法可以中断脚本,然后稍后从同一行继续,那么该命令将是完美的。类似于这些行的内容可能适合您 For ($i=1; $i -lt 50; $i++) {

我有一个脚本,它当前使用ForEach对象循环从CSV中提取文件位置并将文件上载到数据库

我想要它做的是上传1000个文件,然后能够暂停循环,稍后从文件1001恢复循环

我不想使用Start Sleep命令,因为我不希望脚本在设定的时间后自动恢复

这是一次性交易,所以我不想将其转换为工作流

可以使用什么命令或cmdlet来完成此任务



如果有一种方法可以中断脚本,然后稍后从同一行继续,那么该命令将是完美的。

类似于这些行的内容可能适合您

For ($i=1; $i -lt 50; $i++)  {

    if ($i -eq 10)
    {
        $input = Read-Host "Should I continue Y/N"
        if ($input -eq "N")
        {
           break
        }
    }
    Write-Host $i
}

使用
暂停

For ($i=1; $i -lt 2000; $i++)  {

    if ($i -eq 1001)
    {
         pause
    }
    Write-Host $i
}
我是这样做的:

$i=0;
foreach($file in(获取ChildItem$path_到_目录)){
#上载$file引用的文件的代码
如果(++$i-等式1000){
写入主机-非WLINE“已上载1000个文件。按大写字母“C”继续上载其余文件…”
做{
}直到($Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyUp').Character)-ceq'C')
}
}
正如Bluecakes的回答中所建议的那样,使用暂停是一个非常好的解决方案。这种方法的优点是,它给你更多的控制暂停始终需要输入键,并始终给出相同的提示,
按Enter键继续…:
,而通过这种方式,您可以根据自己的喜好定义两者

更重要的是,我个人更喜欢在我自己的脚本中这样做的原因是,您可以防止意外按键。在我的示例中,我将所需的击键设置为大写字母C,因此不太可能意外地继续


但是,如果您不关心这些,只想简单快速地说一句就可以了,那么暂停确实是您所需要的。

文件是否有可能在您停止和恢复的时间之间发生变化?您是否尝试过
读取主机
?不清楚您想要完成什么。您是说目录中有1000个文件,并且将添加更多文件,还是说已经有1000多个文件,并且您希望在上载前1000个文件后停止并稍后继续?另外,“以后”的确切含义是什么,即基于什么标准您希望恢复?你说你不想使用开始睡眠,因为你不想在一段特定的时间后恢复,但你没有解释什么决定了你想恢复。基于添加到目录中的新文件?手动?mjolinor-文件不会更改。@adInbar csv中列出的文件超过5000个。我想在每一千个文件之间暂停脚本,并选择手动选择是立即恢复还是稍后恢复。这是一个很好的解决方案,绝对是最简单的方法。我将添加一个纯粹的PowerShell答案,它提供了更多的控制,但这很好。