我发现%~dp0非常有用,我使用它来使我的批处理文件更具可移植性.
但标签本身对我来说似乎很神秘......这是~做什么的?是什么dp意思驱动器和路径?是否0引用%0包含文件名的批处理文件的路径?
或者它只是一个奇怪的标签?
我还想知道它是否是一个记录的功能,或者是一些容易被弃用的东西.
我想找到一个与Bash相对应的Windows批处理副本,$@其中包含传递给脚本的所有参数的列表.
或者我不得不打扰shift?
首先,我看到了这个话题,但我无法理解.
题 :
有一个D:\path\to\file.bat包含以下内容的批处理文件:
echo %cd%
pause
Run Code Online (Sandbox Code Playgroud)
输出是:
C:\
Run Code Online (Sandbox Code Playgroud)
肯定是 D:\path\to
我究竟做错了什么?
我正在使用xampp便携式服务器而我在Apache http服务器上遇到了一些问题,它说"ServerRoot必须是一个有效的目录"
命令行输出:
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 35 of K:/../../../xampp/apache/conf/httpd.conf: ServerRoot must be a valid directory
Apache could not be started
Run Code Online (Sandbox Code Playgroud)
我检查了xampp/apache/conf/httpd.conf的第35行,它是:
ServerRoot "/xampp/apache"
Run Code Online (Sandbox Code Playgroud)
哪个不存在.我的文件夹是:
K:/../../../xampp/apache/conf <- where the httpd.conf is
K:/../../../xampp/apache/ <- the server root
K:/../../../xampp/apache/modules <- where server modules are
Run Code Online (Sandbox Code Playgroud)
如果我改变(在第35行)
ServerRoot ".."
Run Code Online (Sandbox Code Playgroud)
它说:
Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 65 of K:/../../../xampp/apache/conf/httpd.conf: Cannot …Run Code Online (Sandbox Code Playgroud) 我有一个包含以下内容的批处理文件:
echo %~dp0
CD Arvind
echo %~dp0
Run Code Online (Sandbox Code Playgroud)
即使更改目录值后%~dp0也是如此.但是,如果我从CSharp程序运行此批处理文件,则CD%~dp0后更改的值.它现在指向新目录.以下是我使用的代码:
Directory.SetCurrentDirectory(//Dir where batch file resides);
ProcessStartInfo ProcessInfo;
Process process = new Process();
ProcessInfo = new ProcessStartInfo("mybatfile.bat");
ProcessInfo.UseShellExecute = false;
ProcessInfo.RedirectStandardOutput = true;
process = Process.Start(ProcessInfo);
process.WaitForExit();
ExitCode = process.ExitCode;
process.Close();
Run Code Online (Sandbox Code Playgroud)
为什么以不同方式执行相同脚本的输出存在差异?
我在这里想念一下吗?
我有一个批处理文件,与我想要的文件位于同一目录中xcopy.但由于某种原因,文件未找到.
我认为当前目录始终是批处理文件所在的位置.
我以管理员身份运行批处理文件 这发生在Windows 7 64位台式计算机上.
批处理文件:
@ECHO OFF
XCOPY /y "File1.txt" "File2.txt"
PAUSE
Run Code Online (Sandbox Code Playgroud)
错误:
File not found - File1.txt
0 File(s) copied
Run Code Online (Sandbox Code Playgroud) 我有以下reg文件
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Run script]
@="Run &script"
[HKEY_CLASSES_ROOT\*\shell\Run script\command]
@="\"C:\\Users\\teodora\\Desktop\\test.bat\" \"%1\""
Run Code Online (Sandbox Code Playgroud)
如何添加当前文件夹的路径而不是使用C:\Users...?我知道如何在.bat文件中执行此操作,但对于.reg文件的工作方式不同。