Batch file 批处理目录名
如何在批处理文件内的变量中存储目录名???要返回存储批处理文件的目录,请使用Batch file 批处理目录名,batch-file,Batch File,如何在批处理文件内的变量中存储目录名???要返回存储批处理文件的目录,请使用 set dirname=c:/some/folder echo %dirname% REM retrieve the last letter of the folder REM and save it in another variable set lastLetter=%dirname:~-1% echo %lastLetter% %~dp0 %0是批处理文件的完整路径 set src= %~dp0 ec
set dirname=c:/some/folder
echo %dirname%
REM retrieve the last letter of the folder
REM and save it in another variable
set lastLetter=%dirname:~-1%
echo %lastLetter%
%~dp0
%0是批处理文件的完整路径
set src= %~dp0
echo %src%
当我希望某些文件与批处理文件相关时,我就使用了这个文件。如果没有更高的精度,很难帮助您 也许你想要当前目录
set name=%CD%
echo %name%
使用设置命令 例如:
rem Assign the folder "C:\Folder1\Folder2" to the variable "MySavedFolder"
set MySavedFolder=C:\Folder1\Folder2
rem Run the program "MyProgram.exe" that is located in Folder2
%MySavedFolder%\MyProgram.exe
rem Run the program "My Second Program.exe" that is located in Folder 2 (note spaces in filename)
"%MySavedFolder%\My Second Program.exe"
rem Quotes are required to stop the spaces from being command-line delimiters, but the command interpreter (cmd.exe) will still substitute the value of the variable.
要删除变量,请不为名称指定任何内容:
set MySavedFolder=
由于您在一个批处理文件中,我建议在文件末尾使用setlocal和endlocal包围您的变量用法;这使您的环境变量成为批处理文件的本地变量,并且不会污染全局环境命名空间。要允许脚本确定其父文件夹目录名,请执行以下操作:
@echo off
::setlocal enableextensions,enabledelayedexpansion
SET CDIR=%~p0
SET CDIR=%CDIR:\= %
FOR %%a IN (%CDIR%) DO (
SET CNAME=%%a
)
echo %CDIR%
echo %CNAME%
pause
或者,更好的是:
@echo off
::setlocal enableextensions,enabledelayedexpansion
SET CDIR=%~p0
SET CDIR=%CDIR:~1,-1%
SET CDIR=%CDIR:\=,%
SET CDIR=%CDIR: =_%
FOR %%a IN (%CDIR%) DO SET "CNAME=%%a"
echo %CDIR%
SET CNAME=%CNAME:_= %
echo %CNAME%
pause
您从哪里获取目录名?你想定义一个常数吗?批处理文件的参数?当前目录?要存储的任何文件夹名称!要存储的目录的名称?Tks。。。我的另一个问题是,假设我现在有“dirname”。有什么方法可以让我得到这封信的最后一个字母吗???用一个检索最后一个字母的例子更新了我的答案。在批处理中可以使用HTH.Substring:以这个引用为例