batch/bat - 以包含目录列表的文本文件作为输入的移动函数
batch/bat - Move function with as input a text file with list of directories
我正在写一个bat文件,想添加一个移动功能。这个想法是我有一个 .txt 文件,每行都有一个相对 path\file.
例如 - 这只是一个随机示例:
Data\English\caust00.tga
Data\English\Specific\caust01.tga
Data\caust00.tga
Data\caust00
目前我只有一个删除功能,这很简单,因为它不需要额外的变量集。 (显然,“数据”中还有更多文件,否则我会移动整个文件夹)。
假设上面4行保存在Test.txt中,那就只有这一行:
for /F "tokens=*" %%A in (Test.txt) do del "%%A"
删除所有 4 个文件。现在这很好,但我想实现一个移动功能:即它创建一个新文件夹,在里面说“Temp1”——这取决于“Test.txt”的内容:
Data\English\caust00.tga
Data\English\Specific\caust01.tga
Data\caust00.tga
Data\caust00
我希望你没有迷路。我很想收到一些建议,因为我几乎不知道该怎么做。
编辑:
所以,我有一个名为“Data”的文件夹,里面有很多子文件夹和文件。
我还有一个包含以下内容的文本文件:
Data\Movie\caust00.tga
Data\Movie\caust01.tga
Data\caust02.tga
Data\caust03.tga
Data\WaterPlane\SCCSpyDrone.ani
Data\WaterPlane\SCCStop.ani
Data\WaterPlane\SCCTimedChg.ani
现在我想实现一个移动功能,将这些文件移动到一个新文件夹“Test”,这样我们就可以得到:
Test\Data\Movie\caust00.tga
Test\Data\Movie\caust01.tga
Test\Data\caust02.tga
Test\Data\caust03.tga
Test\Data\WaterPlane\SCCSpyDrone.ani
Test\Data\WaterPlane\SCCStop.ani
Test\Data\WaterPlane\SCCTimedChg.ani
试试这个:
mkdir C:\DestFolder\
move C:\SourceFolder\*.* C:\DestFolder\
这会将所有文件从 SourceFolder
移动到 DestFolder
编辑:
如果你改为这样做会怎样:
如果您有以下文件夹结构:
SourceFolder
|-move.bat
|-FilesToMove.txt
|-1.txt
|-2
|-2.txt
其中 FilesToMove.txt
包含:
1.txt
2.txt
和 move.bat
看起来像这样:
for /F "tokens=*" %%A in (FilesToMove.txt) do call:moveFunc %%A C:\DestFolder\
:moveFunc
md %2\%1\..\ 2> nul
move %1 %2\%1
如果您现在 运行 move.bat
,1.txt
和 2.txt
将移至 C:\DestFolder
。这是否满足您的需求?
我正在写一个bat文件,想添加一个移动功能。这个想法是我有一个 .txt 文件,每行都有一个相对 path\file.
例如 - 这只是一个随机示例:
Data\English\caust00.tga
Data\English\Specific\caust01.tga
Data\caust00.tga
Data\caust00
目前我只有一个删除功能,这很简单,因为它不需要额外的变量集。 (显然,“数据”中还有更多文件,否则我会移动整个文件夹)。
假设上面4行保存在Test.txt中,那就只有这一行:
for /F "tokens=*" %%A in (Test.txt) do del "%%A"
删除所有 4 个文件。现在这很好,但我想实现一个移动功能:即它创建一个新文件夹,在里面说“Temp1”——这取决于“Test.txt”的内容:
Data\English\caust00.tga
Data\English\Specific\caust01.tga
Data\caust00.tga
Data\caust00
我希望你没有迷路。我很想收到一些建议,因为我几乎不知道该怎么做。
编辑: 所以,我有一个名为“Data”的文件夹,里面有很多子文件夹和文件。 我还有一个包含以下内容的文本文件:
Data\Movie\caust00.tga
Data\Movie\caust01.tga
Data\caust02.tga
Data\caust03.tga
Data\WaterPlane\SCCSpyDrone.ani
Data\WaterPlane\SCCStop.ani
Data\WaterPlane\SCCTimedChg.ani
现在我想实现一个移动功能,将这些文件移动到一个新文件夹“Test”,这样我们就可以得到:
Test\Data\Movie\caust00.tga
Test\Data\Movie\caust01.tga
Test\Data\caust02.tga
Test\Data\caust03.tga
Test\Data\WaterPlane\SCCSpyDrone.ani
Test\Data\WaterPlane\SCCStop.ani
Test\Data\WaterPlane\SCCTimedChg.ani
试试这个:
mkdir C:\DestFolder\ move C:\SourceFolder\*.* C:\DestFolder\
这会将所有文件从 SourceFolder
移动到 DestFolder
编辑:
如果你改为这样做会怎样:
如果您有以下文件夹结构:
SourceFolder |-move.bat |-FilesToMove.txt |-1.txt |-2 |-2.txt
其中 FilesToMove.txt
包含:
1.txt 2.txt
和 move.bat
看起来像这样:
for /F "tokens=*" %%A in (FilesToMove.txt) do call:moveFunc %%A C:\DestFolder\ :moveFunc md %2\%1\..\ 2> nul move %1 %2\%1
如果您现在 运行 move.bat
,1.txt
和 2.txt
将移至 C:\DestFolder
。这是否满足您的需求?