我有一个使用此文件结构的游戏:
GAME FOLDER
->data
->data->run.bat
我想run.bat
在GAME FOLDER中放一个快捷方式,但是如果我移动它或其他人安装了它,它将不会起作用,因为目标是错误的。有没有办法使目标相对于GOLD FOLDER并“开始”?
Answers:
右键点击/ bat /文件夹,然后点击创建快捷方式。
bat - Shortcut
当前目录。Shortcut to bat
。右键单击刚创建的快捷方式,然后单击“属性”。
将目标(在Windows 7的“快捷方式”选项卡下)更改为以下内容:
%windir%\system32\cmd.exe /c start "" "%CD%\bat\bat\run.bat"
确保“开始于”为空白。这导致它在当前目录中启动。
快捷方式指向.bat时,这可能是可以接受的,但如果要更改图标,请再次打开快捷方式的属性,然后单击“更改图标...”(同样,在Windows 7的“快捷方式”选项卡下)。此时,您可以浏览...查找图标,或通过输入以下内容调出默认系统图标列表
%SystemRoot%\system32\SHELL32.dll
在Browse...
按钮的左边并点击Enter。这适用于Windows 7和Windows XP,但图标由于样式更新而有所不同(但可以识别为相似)。根据Windows快捷所在的版本,该图标将 有时会发生相应的变化。
更多信息:
请参阅将“ start”命令与传递给已启动程序的参数一起使用,以更好地理解第一个Target命令开头的空双引号。
cmd.exe /c start
使用当前打开的Windows资源管理器窗口?
.txt
,.ini
,.md
)
根据Microsoft的说法,如果将此'Start In'
框保留为空,则脚本将在当前工作目录中运行。我已经在Windows 7中尝试过了,它似乎工作正常。
尝试使用Relative(Windows命令行应用程序)。
基本上,快捷方式可以有一个相对链接,但是Windows无法实际创建一个链接。
您可以通过更改文件路径来手动创建相对快捷方式。首先,在通常的上下文菜单中,为文件并在属性->文件位置中创建Windows的新快捷方式:
%windir%\explorer.exe "..\data\run.bat"
.
吗? %windir%\explorer.exe ".\data\run.bat"
-可以吗?
在使用完快捷方式后,在“属性”中设置以下内容:
目标:
%comspec% /k "data\run.bat"
/k
如果您不希望在运行提示后使其保持打开状态,则将其删除。开始于:
%cd%\data
在阅读了几个答案之后,我决定采用一个简单的解决方案:代替快捷方式,我制作了一个只有一行的.bat来调用主.bat,它的工作方式与我想要的一样。
我不确定我是否正确,或者我缺少什么,但是就目前(2016-07-11,运行Win7 Enterprise SP1)而言,LNK文件会在移动或更改驱动器号后自动适应在新地方跑!我在USB驱动器上创建了一个新的快捷方式,并尝试以相对位置保持不变的方式移动快捷方式及其目标,然后更改了驱动器号。快捷方式在两种情况下均有效,并且在双击目标字段后对其进行了修改。
看起来微软已经在过去的更新之一中解决了此问题。
请有人确认。
可以在Windows命令行上使用mklink命令创建具有相对路径的链接。
mklink /d \MyDocs \Users\User1\Documents
这可能是创建链接的最佳方法,因为显然,快捷方式的行为可能会有所不同,这可能取决于创建方式(UI vs mklink命令)。在更改根文件夹时,我观察到一些快捷方式的奇怪行为。
您可以让批处理文件更改当前工作目录(CD)。
cd
命令的样子,并带有子文件夹的相对路径data
。请注意..\data
,这是行不通的,因为父级太高,如Glenn在stackoverflow.com/a/29261618/199364的评论( 基于Anders的评论)中所讨论的,有某种方式可以引用“当前目录的子目录数据”?
最简单的解决方案:> 环境变量 方便使用。
如果对方要在其各自的系统驱动器上安装/解压缩任何文件(通常为c :)。
出于演示目的,请调用我们的应用程序“ test.exe”(可以是任何可执行文件/文件,都不必是exe),并且将其安装/解压缩到文件夹MYCOMPANY \ MYAPP \
然后只需做一个使用%SystemDrive%\ MYCOMPANY \ MYAPP \ test.exe作为目标,将%SystemDrive%\ MYCOMPANY \ MYAPP \作为开始的快捷方式。
所以现在您想部署它。使用“ WinRAR”之类的应用。
简单的方法是使用自解压zip文件,将其整齐地打包为“ .exe”,我会在其中使用一个快捷方式,在应用程序中使用另一个。有一些方法可以制作一个自解压zip文件,该文件将不同的文件提取到不同的目录,但是我还没有玩过它。
另一种方法是为快捷方式进行自解压,将其嵌入到应用程序的自解压中,然后应用一次运行脚本,因为您知道文件的位置。等等
如果要使安装程序能够使用自定义安装/解压缩目录,请查看NSIS可编写脚本的安装系统。
玩的很有趣,希望我的信息对您有所帮助。
只是对leoj3n解决方案的一个小改进(使控制台窗口消失了):您可以尝试只添加以下内容,而不是放在Windows快捷方式%windir%\system32\cmd.exe /c start "" "%CD%\bat\bat\run.bat"
的Target:字段中%windir%\system32\cmd.exe /c "%CD%\bat\bat\run.bat"
,然后再start
在中添加命令run.bat
。这将使控制台窗口消失,但其他所有内容保持不变。