我仍然是PowerShell的新手,我正在尝试创建一个程序,它将根据文件的名称获取文件,并将它们移动到名称相似但不完全相同的文件夹中。 例如,让我们说我有3个文件,Apples.txt,Grapes.txt和Oranges.txt。我想将它们移动到相应的文件夹,ApplesUSA,GrapesNY,OrangesFL。 我可以使用循环和If-Then语句对其进行硬编码。即如果Apples.txt存在移动到ApplesUSA。但我希望它是动态的,所以如果以后添加其他文件和文件夹,我不必更新代码。有没有办法写一个声明,如果FileA和FolderB在名称上相似(两者都在名称中包含苹果),然后将fileA移动到FolderB,依此类推。 任何帮助赞赏。感谢!!!!
答案 0 :(得分:0)
尝试类似这样的事情
public class CurrencyTextWatcher : Java.Lang.Object, ITextWatcher
{
public void AfterTextChanged(IEditable s)
{
//~~~~
}
public void BeforeTextChanged(ICharSequence s, int start, int count, int after)
{
//~~~~
}
public void OnTextChanged(ICharSequence s, int start, int before, int count)
{
//~~~~
}
}
答案 1 :(得分:0)
类似于@ Esperento的oneliner
gci *.txt -af|%{$File=$_.FullName;gci "$($_.BaseName)*" -ad|%{Move $File -Dest $($_.FullName) -whatif}}
详细版本:
PushD "X:\path\to\base\folder"
Get-ChildItem *.txt -File | ForEach-Object{
$File = $_.FullName
Get-ChildItem "$($_.BaseName)*" -Directory | ForEach-Object {
Move-Item $File -Destination $_.FullName -whatif
}
}
PopD
两个版本都需要PowerShell V3用于-File
和-Directory
参数(及其别名-af
/ -ad
)这可以用其他|Where-Object{ $_.PSIsContainer}
代替各自| Where-Object{!$_.PSIsContainer}