批处理获取盘符

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:57:30
我需要将批处理文件所在的文件夹的所有文件拷贝到一个叫做"aaa"的文件夹里面,但是其他电脑的“aaa”这个文件夹经常不会在相同的盘符中间,请问怎样写一个批处理文件将其所在文件夹的所有文件拷贝到一个叫做"aaa" 的文件夹中?
super_manager老兄,那是文件,我这个是文件夹

因楼主不确定aaa文件夹在哪个位置,所以要全盘查找,
但又因全盘很可能不止一个aaa文件夹.
所以以下代码会将批处理所在目录下的所有文件和文件夹复制到全盘所有名为aaa的文件夹中.
如果aaa文件夹在批处理所在的目录下则不复制.
复制后记得删除每行最后多余的空格,否则可能会影响代码正确运行.
@echo off
for %%a in (c d e f g) do (
for /f "delims=" %%i in ('dir/b/ad/s %%a:\') do (
if %%~ni==aaa (
echo "%%i"|findstr /v /i "%cd%">nul&&(
xcopy/e/d/y "%cd%\*.*" "%%i\"&set a="%%i"
))))
explorer.exe %a%

你提的问题可以用xcopy就实现,即:xcopy obt\*.* C:\Windows\aaa\ /s /e
XCOPY 还有众多的功能, 是加参数来完成的。上面的/s /e 参数的作用分别是把子目录和空目录都复制过去,一些使用举例和参数说明如下:
1、如只是单纯地复制 E:\ 盘上所有文件到 D:\ 盘上,就输入“ xcopy e:\*.* d: /s /h "就行啦!如果在复制过程中,你不要他复制文件啦!那就按键盘热键“Ctrl " +"Pause /break" 二个热键 来中断复制。
2、如果想把E:\ 盘上所有文件复制到D:\盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制文件中出现的)那可怎么办才好呢?
那就输入“ xcopy e:\*.* d: /s /h /d /y ”就行啦。他能查出那些文件是已经复制过去