精华内容
下载资源
问答
  • linux命令行获取当前文件的路径 PWD Linux命令行下修改文件或文件夹名 mv file1 file2

    linux命令行获取当前文件的路径

    PWD

     

     

    Linux命令行下修改文件或文件夹名

    mv file1 file2 

    展开全文
  • 1. .bat文件中获取bat文件所在目录的参数为 %~dp0 %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录 cd是转到这个目录,不过我觉得cd /d %~dp0还好些 选项语法: ~0 -...

    1. .bat文件中获取bat文件所在目录的参数为 %~dp0

    %~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”Path缩写,即为路径,目录

    cd是转到这个目录,不过我觉得cd /d %~dp0还好些

    选项语法:

    ~0 -删除任何引号("),扩充%0

    %~f0 -将%0扩充到一个完全合格的路径名(“f”file,即文件)

    %~d0 -仅将%0扩充到一个驱动器号

    %~p0 -仅将%0扩充到一个路径

    %~n0 -仅将%0扩充到一个文件名(“n”name文件名)

    %~x0 -仅将%0扩充到一个文件扩展名

    %~s0 -扩充的路径只含有短名(“s”Short,短的)

    %~a0 -将%0扩充到文件的文件属性(“a”attribute,即属性)

    %~t0 -将%0扩充到文件的日期/时间(“t”time)

    %~z0 -将%0扩充到文件的大小(Size大小)

    %~$PATH:0 -查找列在路径环境变量的目录,并将%0扩充

    到找到的第一个完全合格的名称。如果环境变量名

    未被定义,或者没有找到文件,此组合键会扩充到

    空字符串

    可以组合修饰符来得到多重结果:

    %~dp0 -仅将%0扩充到一个驱动器号和路径

    %~nx0 -仅将%0扩充到一个文件名和扩展名

    %~fs0 -仅将%0扩充到一个带有短名的完整路径名

    %~dp$PATH:0 -查找列在路径环境变量的目录,并将%I扩充

    到找到的第一个驱动器号和路径。

    %~ftza0 -将%0扩充到类似输出线路的DIR

    %0为当前批处理文件

    如果0换成1为第一个文件,2为第2

    ****************************************************

    %0代指批处理文件自身

    %~d0是指批处理所在的盘符

    %~dp0是盘符加路径

    cd %~dp0就是进入批处理所在目录


    2.添加永久环境变量

    用reg add 向HKLM\system\controlset001\control\session manager\environment添加变量即可

    如:添加添加值为hedalixin变量NAME

    reg add "HKLM\system\controlset\control\session manager\environment" /v NAME /t REG_SZ /d hedalixin

    展开全文
  • 获取PEB很简单,也早有人说过这个问题. 在用户模式下,fs寄存器指向TEB结构,在TEB开头部分是这么定义的: lkd> dt _TEB nt!_TEB  +0x000 NtTib : _NT_TIB  +0x01c EnvironmentPointer : Ptr32 Void  +0x020 ...

    原文发表于百度空间,2008-7-24

    当时对UNICODE_STRING的使用还有点问题,导致最终效果图中字符串被截断了
    ==========================================================================

    先从分析PEB开始吧.
    感觉分析这个东西,首先要把类型定义搞清楚,这个在Windbg里dt _PEB就可以了
    搞清楚定义主要是为了定位相关变量的偏移.
    PEB中的ProcessParameters部分就是进程的参数了,里面就有我们感兴趣的映像路径等信息
    之所以对这个感兴趣,是因为以前看到过修改PEB中的映像路径过防火墙的
    获取PEB很简单,也早有人说过这个问题.
    在用户模式下,fs寄存器指向TEB结构,在TEB开头部分是这么定义的:
    lkd> dt _TEB
    nt!_TEB
       +0x000 NtTib            : _NT_TIB
       +0x01c EnvironmentPointer : Ptr32 Void
       +0x020 ClientId         : _CLIENT_ID
       +0x028 ActiveRpcHandle : Ptr32 Void
       +0x02c ThreadLocalStoragePointer : Ptr32 Void
       +0x030 ProcessEnvironmentBlock : Ptr32 _PEB        //这个就指向PEB

    再看PEB的开头部分:
    lkd> dt _PEB
    nt!_PEB
       +0x000 InheritedAddressSpace : UChar
       +0x001 ReadImageFileExecOptions : UChar
       +0x002 BeingDebugged    : UChar
       +0x003 SpareBool        : UChar
       +0x004 Mutant           : Ptr32 Void
       +0x008 ImageBaseAddress : Ptr32 Void
       +0x00c Ldr              : Ptr32 _PEB_LDR_DATA
       +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS //指向进程的参数

    再来看_RTL_USER_PROCESS_PARAMETERS 的结构:
    lkd> dt _RTL_USER_PROCESS_PARAMETERS
    nt!_RTL_USER_PROCESS_PARAMETERS
       +0x000 MaximumLength    : Uint4B
       +0x004 Length           : Uint4B
       +0x008 Flags            : Uint4B
       +0x00c DebugFlags       : Uint4B
       +0x010 ConsoleHandle    : Ptr32 Void
       +0x014 ConsoleFlags     : Uint4B
       +0x018 StandardInput    : Ptr32 Void
       +0x01c StandardOutput   : Ptr32 Void
       +0x020 StandardError    : Ptr32 Void
       +0x024 CurrentDirectory : _CURDIR   //当前目录
       +0x030 DllPath          : _UNICODE_STRING
       +0x038 ImagePathName    : _UNICODE_STRING  //映像路径
       +0x040 CommandLine      : _UNICODE_STRING     //命令行
       +0x048 Environment      : Ptr32 Void
       +0x04c StartingX        : Uint4B
       +0x050 StartingY        : Uint4B
       +0x054 CountX           : Uint4B
       +0x058 CountY           : Uint4B
       +0x05c CountCharsX      : Uint4B
       +0x060 CountCharsY      : Uint4B
       +0x064 FillAttribute    : Uint4B
       +0x068 WindowFlags      : Uint4B
       +0x06c ShowWindowFlags : Uint4B
       +0x070 WindowTitle      : _UNICODE_STRING
       +0x078 DesktopInfo      : _UNICODE_STRING
       +0x080 ShellInfo        : _UNICODE_STRING
       +0x088 RuntimeData      : _UNICODE_STRING
       +0x090 CurrentDirectores : [32] _RTL_DRIVE_LETTER_CURDIR

    到这儿,应该就比较清楚了,反正这些东西都是在用户空间的,可以看也可以改.
    关键代码如下:

     

    typedef struct _RTL_USER_PROCESS_PARAMETERS
    {
    DWORD MaximumLength;
    DWORD Length;
    DWORD Flags;
    DWORD DebugFlags;
    HANDLE ConsoleHandle;
    DWORD ConsoleFlags;
    HANDLE StandardInput;
    HANDLE StandardOutput;
    HANDLE StandardError;
    CURDIR CurrentDirectory;
    UNICODE_STRING DllPath;
    UNICODE_STRING ImagePathName;
    UNICODE_STRING CommandLine;
    void* Environment; //指向MULTI的宽字符串
    DWORD StartingX;
    DWORD StartingY;
    DWORD CountX;
    DWORD CountY;
    DWORD CountCharsX;
    DWORD CountCharsY;
    DWORD FillAttribute;
    DWORD WindowFlags;
    DWORD ShowWindowFlags;
    UNICODE_STRING WindowTitle;
    UNICODE_STRING DesktopInfo;
    UNICODE_STRING ShellInfo;
    UNICODE_STRING RuntimeData;
    RTL_DRIVE_LETTER_CURDIR CurrentDirectores;
    }RTL_USER_PROCESS_PARAMETERS;
    
    void* PEB;
    PWSTR p;
    PWSTR fakeImagePath=L"I am achillis,this is fake image path";
    PWSTR fakeCommandLine=L"I am achillis,this is fake commandline";
    PWSTR fakeCurrentDirectory=L"I am achillis,this is fake CurrentDirectory";
    RTL_USER_PROCESS_PARAMETERS *pUserParam;
    _asm
    {
    mov eax,fs:[0x30] //TEB->PEB
    mov eax,[eax+0x10]   //PEB->ProcessParameters
    mov pUserParam,eax 
    }
    printf("RTL_USER_PROCESS_PARAMETERS:0x%08x\n",pUserParam);
    //输出映像路径等信息
    //wprintf(L"DllPath:%s\n",pUserParam->DllPath.Buffer);
    wprintf(L"[ImagePath]:%s\n",pUserParam->ImagePathName.Buffer);
    wprintf(L"[CommandLine]:%s\n",pUserParam->CommandLine.Buffer);
    wprintf(L"[CurrentDirectory]:%s\n",pUserParam->CurrentDirectory.DosPath.Buffer);
    //修改其中的内容
    lstrcpyW(pUserParam->ImagePathName.Buffer,fakeImagePath);
    lstrcpyW(pUserParam->CommandLine.Buffer,fakeCommandLine);
    lstrcpyW(pUserParam->CurrentDirectory.DosPath.Buffer,fakeCurrentDirectory);
    

     

    效果还行,但是路径那块儿还是有问题,被截断了.
    丢个图吧,高手飘过~

     

     

    转载于:https://www.cnblogs.com/achillis/p/10178381.html

    展开全文
  • Clisso:CLI单一登录 ... 将二进制文件移到路径下的某个位置。 Clisso支持macOS , Linux和Windows 。 使用自制软件安装 要使用Homebrew安装Clisso,请运行以下命令: brew tap allcloud-io/tools brew i
  • bash获取当前路径示例

    2021-01-20 16:00:04
    bash获取脚本所在路径 代码如下:#!/bin/bashCMD_PATH=`dirname $0`echo “current cmd path:$CMD_PATH”cd $CMD_PATHecho $PWD 您可能感兴趣的文章:bash shell命令行选项与修传入参数处理Bash Shell 注释多行的几种...
  • Python获取当前路径

    万次阅读 2018-09-30 18:29:36
    Refs: ... 假设py文件路径为 F:/SEG/myResearch/myProject_2/test.py Method 1: sys.argv[0] import sys print sys.argv[0]#获得的是当前执行脚本的位置(若在命令行执行的该命令,则为空...

    Refs:

    https://blog.csdn.net/qq_15188017/article/details/53991216

    假设py文件路径为

    F:/SEG/myResearch/myProject_2/test.py

    Method 1: sys.argv[0]

    import sys
    
    print sys.argv[0]#获得的是当前执行脚本的位置(若在命令行执行的该命令,则为空)12

    运行结果(在python脚本中执行的结果):

      F:/SEG/myResearch/myProject_2

    注意:对于py文件和py可执行文件sys.path[0]返回的结果不同。

    import sys,os
    
    #获取脚本文件的当前路径
    
    def cur_file_dir():
    
         #获取脚本路径
    
         path = sys.path[0]
    
         #判断为脚本文件还是py2exe编译后的文件,如果是脚本文件,则返回的是脚本的目录,如果是py2exe编译后的文件,则返回的是编译后的文件路径
    
         if os.path.isdir(path):
    
             return path
    
         elif os.path.isfile(path):
    
             return os.path.dirname(path)

    Method 2: os模块

    import os
    
    print os.getcwd()#获得当前工作目录
    
    print os.path.abspath('.')#获得当前工作目录
    
    print os.path.abspath('..')#获得当前工作目录的父目录
    
    print os.path.abspath(os.curdir)#获得当前工作目录

    运行结果:

      F:\SEG\myResearch\myProject_2 

      F:\SEG\myResearch\myProject_2

      F:\SEG\myResearch 

      F:\SEG\myResearch\myProject_2

    注:若要改变当前工作路径,可以用:os.chdir(path) 。

     

    展开全文
  • python 获取当前路径

    2018-04-24 16:40:00
    print sys.argv[0]#获得的是当前执行脚本的位置(若在命令行执行的该命令,则为空)运行结果(在python脚本中执行的结果):F:/SEG/myResearch/myProject_2/test.pyos模块import os print os.getcwd()#获得当前工作...
  • python3获取当前路径

    万次阅读 2018-02-15 19:47:19
    进入python命令行:import sys,osos.getcwd()#然后就可以看见结果了
  • windows命令行文件中获取bat文件所在目录相关路径

    万次阅读 多人点赞 2016-06-21 14:15:21
    批处理命令获取当前盘符和当前目录 %~d0 是当前盘符 %cd% 是当前目录 可以用echo %cd%进行打印测试 以下例子是命令行编译Visual Studio编写的程序: @echo off set b=%cd% //将当前目录保存到参数b中,等号...
  • 在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0。 这两个变量的用法和代表的内容是不同的。 %cd% 可以用在批处理文件中,也可以用在命令行中; 展开后,是驱动器盘符:+当前目录,如在dos...
  • java中获取当前路径的方法

    千次阅读 2010-05-25 08:00:00
    归纳一些网上取JAVA路径的方法:注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。得到classpath和当前类的绝对路径的一些方法获得CLASSPATH之外路径的方法...
  • 为了更好的规范当前程序的运行环境,可以设置当前工作目录。源代码如下所示: //设置当前目录为程序文件所在目录, 返回...//使用NULL参数,获取本模块路径 if (!GetModuleFileNameA(NULL, szMoudlePath, MAX_PATH))
  • python-获取当前工作路径

    千次阅读 2019-10-02 05:21:12
    print sys.argv[0]#获得的是当前执行脚本的位置(若在命令行执行的该命令,则为空) 运行结果(在python脚本中执行的结果): F:/SEG/myResearch/myProject_2/test.py 2.os模块 import os print os....
  • process.cwd() 当前执行程序的路径(执行命令行时候的路径,不是代码路径 例如 在根目录下执行 node ./xxx/xxx/a.js则 cwd 返回的是 根目录地址 ) __dirname: 代码存放的位置 process.execPath: 当前执行...
  • Linux中获取当前程序路径的方法

    千次阅读 2012-05-22 13:37:26
    1、命令行实现:转自:...注意:在cur_dir后没空格,=后面也不能有空格,不然它会认为空格不是路径而报错   2、程序实现:转自:http://topic.csdn.net/u/20071217/13/78e8
  • 在资源管理器中获取当前选择的文件名/文件路径 以发给beyond compare 这类程序 ;sunwind 整理 ;2014年11月15日 SetTitleMatchMode, RegEx GroupAdd, Explorer, ahk_class CabinetWClass GroupAdd, Explorer, ahk_...
  • 我把文件与exe放一起了,所以采用的相对路径很方便,但打成exe后,如果在cmd命令行中运行时,发现只有cd 当exe所在的目录才能调用到所需要的文件,我又不想写绝对路径,所以网上各种找如果获取路径的方法,一师兄...
  • 我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是: 输出已经去除了尾部的”/”字符部分的名称;如果名称中不包含”/”, 则显示”.”(表示当前目录)。 下面是dirname的命令行说明: 从上面的...
  • C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径============================================使用 Application.StartupPath  <br />至于  System.IO.Directory.GetCurrentDirectory...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 551
精华内容 220
关键字:

命令行获取当前路径