我在bat文件中有以下内容:
@ECHO OFF
REM The following directory is for .NET 4.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
echo Installing IEPPAMS Win Service...
echo ---------------------------------------------------
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil My.WindowsService.exe
echo ---------------------------------------------------
pause
echo Done.
Run Code Online (Sandbox Code Playgroud)
问题是,即使bat文件与My.WindowsService.exe位于同一文件夹中,它也会尝试在C:\ Windows\System32中查找它.
我该如何解决这个问题?
所以,我制作了一个批处理脚本,它执行多个可移植程序(例如,prog1.exe,prog2.exe等).问题是每当我将USB驱动器连接到另一台计算机时,驱动器号都会改变,在运行我的.bat文件时会出现错误.请帮我找一个解决方案.谢谢.
我正在尝试将.bat文件转换为PowerShell,并且无法理解代码片段的作用:
set MY_VARIABLE = "some\path\here"
"!MY_VARIABLE:\=/!"
Run Code Online (Sandbox Code Playgroud)
上面第2行是做什么的?特别地,我不明白:\ = /正在做什么,因为我已经看到变量else在代码被引用的地方,如!MY_VARIABLE!.
另一个混淆点是下面的代码.
set SOME_VARIABLE=!SOME_ARGUMENTS:\=\\!
set SOME_VARIABLE=!SOME_ARGUMENTS:"=\"!
Run Code Online (Sandbox Code Playgroud)
另外,你能告诉我上面第3和第4行的情况吗?
以下变量将转换为PowerShell的内容是什么?
set TN0=%~n0
set TDP0=%~dp0
set STAR=%*
Run Code Online (Sandbox Code Playgroud)
对此有任何帮助非常感谢.谢谢.
我想从当前位置获取一个文件夹的路径,该文件夹是2个目录.
我正在做以下事情:
echo %CD%
set NEW_PATH = ..\..\bin\
echo %PATH%
Run Code Online (Sandbox Code Playgroud)
当我运行上面的命令时,我打印了当前的目录路径但是NEW_PATH不是..它只是说ECHO_OFF.
从这个链接:批处理文件:相对路径错误,从我也尝试过的当前目录向上一级
set NEW_PATH = %~dp0..\..\bin\
Run Code Online (Sandbox Code Playgroud)
但仍然是同样的问题.
我怎样才能获得此目录路径?
来自FOR /?:
In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:
%~I - expands %I removing any surrounding quotes (")
%~fI - expands %I to a fully qualified path name
%~dI - expands %I to a drive letter only
%~pI - expands %I to a path only
%~nI - expands %I to a file name only
%~xI - expands %I to a file extension only
%~sI - expanded path …Run Code Online (Sandbox Code Playgroud) 我有 .phar 文件,我想用这个命令从任何地方运行它。
php file.phar --options
file.phar 在 C:\my-php-cli\file 中的位置
是什么pushd %~dp0在.cmd文件的手段?我知道这 %~dp0意味着它表示一个驱动器号。说明什么pushd?。