我正在尝试创建一个脚本,该脚本读取文件的第一行,然后将具有类似命名约定的所有文件移动到一个级别。
这些是3个示例文件:
C:\Users\USERNAME\location\PYYYYYYYYY.txt.asc
C:\Users\USERNAME\location\holdingarea\PYYYYYYYYY.tt.asc
C:\Users\USERNAME\location\holdingarea\PYYYYYYYYY.t.asc
我到目前为止的脚本是:
$location = Read-Host -Prompt "Location Filename"
$locationfilename = Select-String C:\Users\USERNAME\location\holdingarea\*.txt.asc –pattern $location -Context 1
$locationfilenames = $locationfilename.basename
$locationarea = "C:\Users\USERNAME\location\holdingarea"
$locationlocation = "C:\Users\USERNAME\location"
Select-String C:\Users\USERNAME\location\holdingarea\*.txt.asc -Pattern $location -Context 1 |
Out-File -Append C:\Users\USERNAME\location\logs.txt
Move-Item -Path "$locationfilenames" -Destination "$locationlocation"
答案 0 :(得分:0)
您的问题出现在这里:
$locationfilename = Select-String C:\Users\USERNAME\location\holdingarea\*.txt.asc –pattern $location -Context 1
假设您只是尝试获取文件名,这应该有效:
$lcoationfilename = $location | Split-Path -Leaf
如果它是你之后的父文件夹,那么这是合适的:
$lcoationfilename = $location | Split-Path -Parent
如果由于某种原因您使用的是没有拆分路径的PS版本,请告诉我,我会编辑一个更合适的解决方案。