我希望能够将批处理文件放在任何目录中,并让其将文件复制到指定目录。我尝试过使用:
set path="%~dp0"
copy "%path%\test.txt" "C:\"
pushd "%~dp0"
copy "%~dp0\test.txt" "C:\"
copy "\test.txt" "C:\"
但唯一有效的方法是输入文件的完整目录
copy "C:\WORK\PRogramering1\test.txt" "C:\"
每次我运行代码时,我都会在管理员模式下运行,所以这不是问题。我尝试使用通过谷歌搜索找到的解决方案,但没有帮助。
答案1
harrymc 的评论
从你的描述中我感觉这个 .bat 文件就足够了:
copy "test.txt" "C:\"
。这太简单了,请提供更多细节。注意:C:
应避免将根目录作为工作场所,并保留给 Windows
问题是我试图将文件复制到需要管理员权限的目录中,所以当我更改目录时,harrymc 告诉我使用的代码有效
答案2
@echo off
::-------------------------------------------------::
copy /y "%~dp0test.txt" "C:\"
pause
::-------------------------------------------------::
pushd "%~dp0"
copy /y .\"test.txt" "C:\"
copy "test.txt" "C:\"
popd
pause
::-------------------------------------------------::
pushd "C:\"
copy /y "%~dp0test.txt" .
copy /y "%_path%\test.txt" .
popd
pause
::-------------------------------------------------::
set "_path=%~dp0"
copy /y "%_path%test.txt" "C:\"
copy /y "%_path%\test.txt" "C:\"
pause
::-------------------------------------------------::
setlocal
set "_path_file=%~dp0test.txt"
copy /y "%_path_file%" "C:\"
endlocal
::-------------------------------------------------::
1了解%Path%
变量,它是一个系统变量,所以避免使用它(以及其他变量),这确实会导致意外的行为。
2.听ss64.com 的建议/提示set
命令: