Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.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 - Fatal编程技术网

Powershell 自动检测文件而不是使用任务计划程序

Powershell 自动检测文件而不是使用任务计划程序,powershell,Powershell,我有一段代码,它从:d2ve38282中提取一个文件,并将其本地放到:D:\Test\MEP\TST\input\Test中 第一次尝试: Move-Item "\\d2ve38282\AS2\Inbound\Test Orders\*.txt" -Destination "D:\Test\MEP\TST\input\tEST" 第二次尝试: $FTBM = 'D:\Test Folder' $FLTR = '*.*' $watcher = New-Object IO.FileSystemW

我有一段代码,它从:d2ve38282中提取一个文件,并将其本地放到:D:\Test\MEP\TST\input\Test中

第一次尝试:

Move-Item "\\d2ve38282\AS2\Inbound\Test Orders\*.txt" -Destination "D:\Test\MEP\TST\input\tEST"
第二次尝试:

$FTBM = 'D:\Test Folder'
$FLTR = '*.*'

$watcher = New-Object IO.FileSystemWatcher $FTBM, $FLTR -Property @{
    IncludeSubDirectories = $false;
    NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}

Move-Item "D:\Test Folder\*.txt" -Destination "D:\Test Folder 2"

Register-ObjectEvent $watcher Created -SourceIdentifier FileCreated -Action {
    $name = $Event.SourceEventArgs.Name
    $changeType = $Event.SourceEventArgs.ChangeType
}
#Unregister-Event FileCreated
$FTBM = 'D:\Test Folder'
$FLTR = '*.*'

$watcher = New-Object IO.FileSystemWatcher $FTBM, $FLTR -Property @{
    IncludeSubDirectories = $false;
    NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}

Register-ObjectEvent $watcher Created -SourceIdentifier FileCreated -Action {
    $name = $Event.SourceEventArgs.Name
    $changeType = $Event.SourceEventArgs.ChangeType
    Move-Item "D:\Test Folder\*.txt" -Destination "D:\Test Folder 2"
}"
#Unregister-Event FileCreated
第三次尝试:

$FTBM = 'D:\Test Folder'
$FLTR = '*.*'

$watcher = New-Object IO.FileSystemWatcher $FTBM, $FLTR -Property @{
    IncludeSubDirectories = $false;
    NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}

Move-Item "D:\Test Folder\*.txt" -Destination "D:\Test Folder 2"

Register-ObjectEvent $watcher Created -SourceIdentifier FileCreated -Action {
    $name = $Event.SourceEventArgs.Name
    $changeType = $Event.SourceEventArgs.ChangeType
}
#Unregister-Event FileCreated
$FTBM = 'D:\Test Folder'
$FLTR = '*.*'

$watcher = New-Object IO.FileSystemWatcher $FTBM, $FLTR -Property @{
    IncludeSubDirectories = $false;
    NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'
}

Register-ObjectEvent $watcher Created -SourceIdentifier FileCreated -Action {
    $name = $Event.SourceEventArgs.Name
    $changeType = $Event.SourceEventArgs.ChangeType
    Move-Item "D:\Test Folder\*.txt" -Destination "D:\Test Folder 2"
}"
#Unregister-Event FileCreated

我如何设置它在该文件夹中找到测试顺序时自动运行:D:\Test folder\?

您可以使用如下内容:

$folder = 'c:\scripts\test' # Enter the root path you want to monitor.
$filter = '*.*'  # You can enter a wildcard filter here.

# In the following line, you can change 'IncludeSubdirectories to $true if required.                          
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}

# Here, all three events are registerd.  You need only subscribe to events that you need:

Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore red
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore white
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}
资料来源:


Net版本总是比WMI版本好。希望能有所帮助。

您可以使用以下内容:

$folder = 'c:\scripts\test' # Enter the root path you want to monitor.
$filter = '*.*'  # You can enter a wildcard filter here.

# In the following line, you can change 'IncludeSubdirectories to $true if required.                          
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}

# Here, all three events are registerd.  You need only subscribe to events that you need:

Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore red
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}

Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore white
Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}
资料来源:



Net版本总是比WMI版本好。希望有帮助。

在远程主机上创建一个文件系统监视程序,并让它将文件推送到目标。您好,谢谢您,我将对此文件系统监视程序进行更多调查,并将返回结果。您好,我刚刚加入了第二次尝试。这不会在文件到达文件夹时立即移动文件,您知道我哪里出错了吗?请停止在任意位置包装代码,使其适合内容区域的宽度。复制/粘贴与脚本完全相同的代码。在注册观察者之前,请运行
Move Item
。你认为这会怎样?您需要移动观察者在观察者操作中拾取的文件。在远程主机上创建一个文件系统观察者,并让它将文件推送到目标。您好,谢谢您,我将对此文件系统观察者进行更多的调查,并用我的结果回复。您好,我刚刚包括了我的第二次尝试。这不会在文件到达文件夹时立即移动文件,您知道我哪里出错了吗?请停止在任意位置包装代码,使其适合内容区域的宽度。复制/粘贴与脚本完全相同的代码。在注册观察者之前,请运行
Move Item
。你认为这会怎样?您需要移动观察者在观察者操作中拾取的文件。您好,这只是在powershell屏幕上表示有一个文件已被放入文件夹中。我之前已经看过这个文件。一旦文件夹进入文件夹,我需要将其移动。您也可以注册该事件。您有注册该事件的示例吗?@GLH:
$event.SourceEventArgs.ChangeType
将包含所有变体。你可以选择任何你需要的。嗨,这只是在powershell屏幕上说,一个文件已被放入文件夹,我已经看过了。一旦文件夹进入文件夹,我需要将其移动。您也可以注册该事件。您有注册该事件的示例吗?@GLH:
$event.SourceEventArgs.ChangeType
将包含所有变体。你可以挑选你需要的任何东西。