我有一个notepad.txt
文档(文件),其中包含我电脑上几个文件的文件路径名。例如:
C:\Users\Foo\Pictures\Photographs\September\P1030944.jpg
C:\Users\Foo\Videos\Art\Movies\Class\movie.avi
C:\Users\Foo\Music\Jazz\20051.mp3
...ETC。
文本文档中列出的文件位于我的电脑上的不同位置。是否有办法仅H:\Users\Destination
使用文档中的路径名将这些文件从其来源移动到一个目标(例如)notepad.txt
?
答案1
您可以使用命令
for /f "tokens=*" %A in (notepad.txt) do @move "%~A" "H:\Users\Destination\%~nxA"
答案2
这可以在 PowerShell 中完成:
获取内容 .\notepad.txt | ForEach-Object {Move-Item -Force "$_" "H:\Users\Destination\"}
Get-Content .\notepad.txt
抓取文件中的每一行notepad.txt
。ForEach-Object
循环播放来自Get-Content
Move-Item -Force
将文件移动到新位置,无论文件是否已存在。如果不使用开关-Force
,如果目标目录中存在相同的文件名,脚本将抛出错误。$_
是从管道传入的行的值Get-Content
(例如C:\Users\Foo\Pictures\Photographs\September\P1030944.jpg
)。双引号$_
不是必需的,但如果路径或文件名中有空格,则必须使用双引号。