读取输入和移动具有相似名称的文件
Reading input and moving files with similar names
我正在尝试创建一个脚本,该脚本读取文件的第一行,然后将具有相似命名约定的所有文件向上移动一个级别。
这些是 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"
您的问题出现在这里:
$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 版本没有 Split-Path,请告诉我,我将编辑为更合适的解决方案。
我正在尝试创建一个脚本,该脚本读取文件的第一行,然后将具有相似命名约定的所有文件向上移动一个级别。
这些是 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"
您的问题出现在这里:
$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 版本没有 Split-Path,请告诉我,我将编辑为更合适的解决方案。