我正在尝试编写一个批处理脚本,用于将 appdata 文件复制到我的 USB 驱动器...我认为(我不确定)如果在任何 PC 上插入我的 USB %appdata% 都可以用作默认路径,但对于每台 PC,USB 的驱动器号都会发生变化,那么分配这样一个直接与 USB 对应的路径的最佳方法是什么?我用于复制的命令是 xcopy,带有参数 /y /s
答案1
您的假定目标是保存命令文件的文件夹。下面只是告诉它从哪里获取内容。
复制 %appdata%*.*
或者
复制 c:\下载
如果您的批次在 USB X:\123 = 这是复制文件将存储的位置。
答案2
如果您将 CMD 文件存储在 USB 驱动器上并从那里运行它,那么您可以使用脚本的工作目录来帮助您。
CopyAppdataHere.cmd 的内容:
xcopy /y /s %appdata% %~dp0SomeFolder
在脚本中,%~dp0
扩展到驱动器和 CMD 文件的路径(包括尾随的反斜杠),即使它不是活动的当前目录,也会将文件放在某个文件夹目录。
答案3
有很多方法。第一种方法是最简单的,即:
if exist=D:\Data\Teat.TXT goto :copy
只需沿着树运行,直到找到分配给您的 USB 的字母。
另一种方法是在批处理开始时有一个菜单选项,您可以在其中输入 USB 的字母并为其分配一个变量,然后在调用的脚本中使用该变量。
最后,如果您从 USB 运行,*.bat
您应该能够引用设备路径,如果您愿意,我可以跟进这一点。