我好像被困在这上面了,看起来应该很简单。我已经谷歌和尝试了3个小时的各种事情,只是无法得到它。
只是一个小小的警告:下面的代码并不是真正属于我的(好吧,代码错误的部分可能是)。我已经收集了大约30个不同来源的信息,使它发挥作用,我没有保存一个参考书目,所以如果其中一些看起来像你的工作,然后感谢你和抱歉,因为不能给你的荣誉。
此脚本所做的是监视由系带相机生成的jpg文件文件夹,当一个新文件到达输入框并请求新文件名时,它将重新命名新文件,在子目录中创建一个副本,并调用外部exe,该外部exe将复制的文件调整为500x500px。
正如前面提到的,它可以工作,但我知道这很麻烦,我似乎不知道如何验证用户是否将信息输入到输入框中,并选择OK (相对于取消,或者没有输入任何信息)。我似乎也想不出如何将其中一些重复地址声明为$variables。我所做的一切都使剧本失败了。
这是脚本,你能提供的任何帮助都是很棒的。
# DECLARE GLOBAL VARIABLES
$global:directory = "C:\Users\JoeBlogs\Desktop\Folder"
$filter = "*.jpg"
# SET FOLDER TO WATCH + FILES TO WATCH + NO SUBFOLDERS
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $global:directory
$watcher.Filter = $filter
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true
# DEFINE ACTIONS AFTER AN EVENT IS DETECTED
$action = { $latest = dir $global:directory | Sort CreationTime -Descending | Select name -First 1
$name = $latest.name
$basename = $name.ToUpper().replace(".JPG","")
Add-Type -AssemblyName Microsoft.VisualBasic
$newname = [Microsoft.VisualBasic.Interaction]::InputBox('New file name', 'Rename File', $basename)
Rename-Item $global:directory\$name $newname".jpg"
if (!(Test-Path -path $global:directory\"Resized")) {New-Item $global:directory\"Resized" -Type Directory}
Copy-Item -path $global:directory\$newname".jpg" -destination $global:directory\"Resized"\$newname".jpg"
&"C:\Users\JoeBlogs\Desktop\PhotoResize500x500IOQ100.exe" $global:directory"\Resized\"$newname".jpg"
}
# DECIDE WHICH EVENTS SHOULD BE WATCHED
Register-ObjectEvent $watcher "Created" -Action $action
while ($true) {sleep 3}发布于 2018-01-07 17:53:56
验证用户是否将信息输入到输入框并选择OK
如果用户按cancel或使输入字段为空,则$newname为空。这可以在if语句中使用,以确保只有在输入正常时才会进行重命名:
$newname = [Microsoft.VisualBasic.Interaction]::InputBox('New file name', 'Rename File', 'ddd')
if ($newname) {
Rename-Item $global:directory\$name $newname".jpg"
...
}附加改良剂
在以后几次使用时声明附加变量resized_directory:
$global:resized_directory = "C:\Users\JoeBlogs\Desktop\Folder\Resized"这一行应该移到顶部,因为这只需要做一次:
if (!(Test-Path -path $resized_directory)) {New-Item $resized_directory -Type Directory}https://stackoverflow.com/questions/48138600
复制相似问题