我有一个简单的批处理脚本,它将./source
的内容复制到指定为参数的目标。将./source
中的文件复制到目标后,它们将移至./archive
。
script.cmd "\\web01\www\accounting\assets" "otherArgs"
这个脚本将在几个区域中使用,但是我没有在每个区域使用脚本的离散副本,而是希望利用快捷方式(.lnk)指向脚本的一个副本,如果每个人都使用最新版本,那么如果进行了更改。
文件夹结构如下所示:
company
|
+-- script.cmd
|
+-- accounting
| |
| +-- archive
| | |
| | \-- oldFile
| |
| +-- source
| | |
| | \-- newFile
| |
| \-- script.lnk -> ..\script.cmd
|
+-- hr
| |
| +-- archive
| | |
| | \-- oldFile
| |
| +-- source
| | |
| | \-- newFile
| |
| \-- script.lnk -> ..\script.cmd
|
+-- sales
| |
| +-- archive
| | |
| | \-- oldFile
| |
| +-- source
| | |
| | \-- newFile
| |
| \-- script.lnk -> ..\script.cmd
|
...
目前,该脚本未使用正确的存档和源目录。它试图在顶层查找目录,而不是在子目录中查找目录。是否有像%~dp0
或%cd%
这样的变量会有快捷方式所在的路径?或者有没有办法可以在不使用绝对路径的情况下将其作为参数传递?如
script.cmd "\\web01\www\accounting\assets" "%cd%" "otherArgs"
答案 0 :(得分:0)
使用别名脚本:
@setlocal ENABLEEXTENSIONS
@cd %~dp0
call %path_to_script%\script.cmd %*
将其中一个放在每个目录中。不需要快捷方式。