我有一个多行的.txt文件。每一行包含到我的网络驱动器/计算机上的文件夹的路径:
其想法是有一个.bat文件,它将读取第1行和第2行,并将文件夹NetworkDrive_PathToFolder1中的文件复制到文件夹Computer_PathToFolder1中,然后读取第3行和第4行,并将文件夹NetworkDrive_PathToFolder2中的文件复制到文件夹Computer_PathToFolder2等。这将使我能够添加/删除路径,而无需修改代码。
我不知道.txt文件应该是什么样的。也许使用xml文件更好?
这是用于连接网络驱动器的Windows 10计算机。启动计算机时,我希望自动将网络驱动器中的某些特定文件更新到计算机上的本地文件夹。
要映射网络驱动器,我更愿意使用PUSHD和POPD,而不是网络使用,因为我不希望网络驱动器被永久映射。
今天,我有一个.txt文件,其中有指向网络驱动器中文件夹的路径:
以及复制文件的文件夹的路径,该文件夹位于.bat文件中。但是所有的东西都被复制到我电脑上的同一个文件夹里。
FOR /F %%i IN (C:\UpdateFilesFromNetworkPaths.txt) DO (
NET USE L: /delete
NET USE L: %%i
xcopy L:\*.txt C:\FilesFromNetwork\ /d /y
)
此代码的结果:文件夹C:\FilesFromNetwork中不存在的每个.txt文件都将从文本文件UpdateFilesFromNetworkPaths.txt中的路径中复制。如果文件存在,如果文件是较新版本,则复制该文件。
发布于 2019-02-14 09:13:52
因此,根据您的帖子,看起来您正在尝试根据文本文件中的路径复制文件。所有两组(1-2,3-4,5-6)都包含源路径和目标路径.这个问题可以通过一个简单的for循环和一个简单的计数器来解决。
假设您的文本文件(.txt)是在下面的示例中格式化的
C:\PathToNetworkDriveFolder1
C:\PathToComputerFolder1
C:\PathToNetworkDriveFolder2
C:\PathToComputerFolder2
C:\PathToNetworkDriveFolder3
C:\PathToComputerFolder3
Bellow将是解决方案脚本:
@ECHO OFF
@Setlocal EnableDelayedExpansion
Set "Count=1"
Rem | Read The Text File Line By Line
FOR /F "tokens=*" %%A in ('Type "list.txt"') DO (
Rem | Grabbed First Line
IF "!Count!"=="1" (
Rem | Add One To Count
Set /a "Count=!Count!+1"
Rem | Save Current Variable
Set "NetworkDrivePath=%%A"
Rem | Grabbed Second Line
) else (
Rem | Subtract One To Count
Set /a "Count=!Count!-1"
Rem | Save Current Variable
Set "ComputerDrivePath=%%A"
Rem | Copy Files
Echo "!NetworkDrivePath!" "!ComputerDrivePath!"
)
)
Goto :EOF
请记住,我的示例使用list.txt
。您可以随意将其更改为您的示例或用法。如果要使用多个文本文件,只需在开始时添加另一个for循环,以搜索所有*.txt
文件名。
对于我的所有脚本,我都添加了rem
注释,以帮助您了解每个进程所做的事情。有关任何命令的帮助,请在新窗口中执行以下操作:
set /?
for /?
if /?
ren /?
https://stackoverflow.com/questions/54695090
复制相似问题