如何使用Powershell将复制和重命名命令合并为一个命令?

如何使用Powershell将复制和重命名命令合并为一个命令?,powershell,Powershell,目前,我使用PS从基于CSV文件的网络位置复制文件,然后使用相同数据的变体重命名它们。这需要我运行两个单独的命令 如何将这些命令合并为一个命令 副本: 粘贴: import-csv C:\TEST\test.csv | foreach {rename-item -path $_.lpath -newname $_.newalias} 请注意,在每种情况下,-path触发器都引用一个单独的变量头npath vs.lpath,它对应于网络文件位置,然后是手动输入的本地文件位置 同样,我如何将这个变

目前,我使用PS从基于CSV文件的网络位置复制文件,然后使用相同数据的变体重命名它们。这需要我运行两个单独的命令

如何将这些命令合并为一个命令

副本:

粘贴:

import-csv C:\TEST\test.csv | foreach {rename-item -path $_.lpath -newname $_.newalias}
请注意,在每种情况下,-path触发器都引用一个单独的变量头npath vs.lpath,它对应于网络文件位置,然后是手动输入的本地文件位置

同样,我如何将这个变量连接到常量数据。如果我有一个代表文件名的变量fn和另一个路径,理论上我可以做:

foreach {rename-item -path 'C:\TEST\' + $_.fn
或:


只需附加这两个命令

import-csv C:\TEST\test.csv | foreach {copy-item -path $_.npath -destination 'C:\TEST\';rename-item -path $_.lpath -newname $_.newalias  }
对于第二个问题,有很多方法可以附加字符串

C:(...)WindowsPowerShell>$data = "bob"

C:(...)WindowsPowerShell>echo "this is a $data"

C:(...)WindowsPowerShell>$concat = "hi" + " george"

C:(...)WindowsPowerShell>$concat
hi george

C:(...)WindowsPowerShell>[string]::Format("{0} {1}","string 1","string 2")
string 1 string 2

我正在寻找一种方法来合并这两个命令,以便只访问一个变量,即是否有一个命令允许您复制一个文件,然后重命名它?这类似于:foreach{copy item-path$\路径-destination'C:\TEST\'-newname$\路径.newalias}?这里的问题是复制项没有-newname触发器。关于附加字符串,您是否可以通过简单地使用加号来连接两个变量,即$\.path+$\.fn将起作用?只需在copy item copy item-path$\\.npath-destination“C:\TEST\$\u newalias”的目标参数中使用字符串连接即可。“C:\TEST\”并不总是常量。有时,我需要将$\ fn.fn追加到$\路径以获得完整的文件路径。我尝试了$\u0.path+$\u0.fn,但这会导致错误.add()以进行计算($\u0.path+$\u0.fn)
import-csv C:\TEST\test.csv | foreach {copy-item -path $_.npath -destination 'C:\TEST\';rename-item -path $_.lpath -newname $_.newalias  }
C:(...)WindowsPowerShell>$data = "bob"

C:(...)WindowsPowerShell>echo "this is a $data"

C:(...)WindowsPowerShell>$concat = "hi" + " george"

C:(...)WindowsPowerShell>$concat
hi george

C:(...)WindowsPowerShell>[string]::Format("{0} {1}","string 1","string 2")
string 1 string 2