0
我有一個製表符分隔的文件,第一列包含文件的當前位置,第二列包含我希望將文件複製到的位置。從製表符分隔的文件中批量複製文件
如何創建一個腳本來自動執行此操作,例如Powershell或Windows批處理?
非常感謝
布倫丹
我有一個製表符分隔的文件,第一列包含文件的當前位置,第二列包含我希望將文件複製到的位置。從製表符分隔的文件中批量複製文件
如何創建一個腳本來自動執行此操作,例如Powershell或Windows批處理?
非常感謝
布倫丹
下工作,如果在CSV的列被命名爲Path
和Destination
:
Import-Csv foo.csv -Delimiter "`t" | Copy-Item
如果你的列被命名爲不同(File
和TargetPath
這裏)你需要一點翻譯:
Import-Csv foo.csv -Delimiter "`t" | ForEach-Object {
Copy-Item -Path $_.File -Destination $_.TargetPath
}
如果你都沒有列標題,你需要告訴Import-Csv
說:
Import-Csv foo.csv -Delim "`t" -Headers Path,Destination | Copy-Item
在批處理文件中的一樣:
for /f "skip=1 tokens=1,2 delims= " %%A in (foo.csv) do (
rem ↖ that's a tab
copy "%%~A" "%%~B"
)
將這項工作如果包括路徑中的位置也如^ h :\ folder \ file.doc並且目標是h:\ folder1 \ – 2012-07-12 13:54:29
是的。如果有疑問,請閱讀「Get-Help Copy-Item -Param Path」或查看該cmdlet的示例。 – Joey 2012-07-12 13:55:38
不可否認,第一種解決方案有點像copout,因爲它利用了PowerShell的非常酷的特性,即在管道中傳遞數據可以通過屬性名稱使用參數。我目前很少使用它,但如果你的輸入數據看起來正確,它可以使一個非常短的腳本:) – Joey 2012-07-12 13:56:40