Articles of 令牌

Unix除了最后两个令牌之外,

我试图parsing特定目录中的文件名。 文件名格式为: token1_token2_token3_token(N-1)_token(N).sh 我需要使用分隔符'_'来剪切标记,除了最后两个标记之外,还需要使用string。 在上面的例子中输出应该是token1_token2_token3 。 令牌的数量不固定。 我已经试过用-f#- cut命令的选项来做,但没有find任何解决scheme。 有任何想法吗?

Windows批处理读取文件并将行parsing为标记和variables

我通过search这个网站并学习了一些荒谬的语言,即Windows批处理脚本,取得了很大进展,但是现在我陷入了困境。 我有一个可变数量的行的文本文件,其中每个看起来像这样: AA8315,"United States",N777AN,"American Airlines",AAL98,B772,"Boeing 777-223",AAL,"2013-06-11 23:30:47.923","2013-06-12 00:01:14.459" 我的batch file: set THEDATE=2013-06-12 set THEDATABASE=c:\Kinetic\BaseStation\Basestation.sqb set THECSVFILE=c:\Flights.csv set THEOUTPUTFILE=c:\FlightsNew.csv set THISLINE="" if exist %THECSVFILE% del %THECSVFILE% if exist %THEOUTPUTFILE% del %THEOUTPUTFILE% :: allow time for the csv file to be deleted timeout /t 2 /nobreak c:\sqlite3.exe -header -csv %THEDATABASE% "select Aircraft.ModeS, Aircraft.ModeSCountry as Country, Aircraft.Registration as […]

写入/读取受内存保护的进程的内存

我会尽我所能解释我的问题。 我正在尝试访问受内存保护的进程内存(扫雷)。 我会先把我的代码,然后我会解释我想要实现的东西。 (如果您阅读所有内容并了解其他方式,请将其发布)。 首先,getProcessHandle是一个函数,它返回名称为procName的进程的打开句柄。 它完美的工作,我可以列出所有的进程。 HANDLE getProcessHandle(const wchar_t *procName){ HANDLE snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 procEnt; procEnt.dwSize = sizeof(PROCESSENTRY32); Process32First(snap, &procEnt); printf("–Listando procesos…\n"); do{ printf("Process name: %S \n", procEnt.szExeFile); if (!wcscmp(procName, procEnt.szExeFile)){ printf("Encontrado %S.\n\n", procName); return OpenProcess(PROCESS_ALL_ACCESS, FALSE, procEnt.th32ProcessID); } } while (Process32Next(snap, &procEnt)); printf("No se ha encontrado el proceso."); CloseHandle(snap); return NULL; 其次,getModule函数。 […]

Windows批处理循环尽pipevariables与dynamic令牌计数

在我的Windowsbatch file中,我有一些variables与不同数量的string。 对于exapmle: set string="-start" "-end someOption" 我用下面的方法计算一个string的数字: Set count=0 For %%j in (%string%) Do Set /A count+=1 echo.Total count: %count% 输出将是: Total count: 2 现在我想开始一个应用程序多次,因为我的variables中有string,我想给应用程序的当前string作为参数。 我试过这个: FOR /L %%H IN (1,1,%COUNT%) DO ( echo %%H FOR /F "tokens=%%H " %%I IN ("%string%") Do ( echo %%I rem java -jar app.jar %%I ) ) 但不幸的是这不起作用:这就是输出: […]

有什么区别:LoadUserProfile -vs- RegOpenCurrentUser

这两个API非常相似,但不清楚它们之间的区别是什么以及什么时候应该使用(除了LoadUserProfile被指定用于CreateProcessAsUser,我没有使用它,我仅仅是为了configurationHive访问)。 LoadUserProfile http://msdn.microsoft.com/en-us/library/bb762281(VS.85).aspx RegOpenCurrentUser http://msdn.microsoft.com/en-us/library/ms724894(VS.85).aspx 根据服务和registry文章: http : //msdn.microsoft.com/en-us/library/ms685145( VS.85) .aspx我们应该在模仿时使用RegOpenCurrentUser。 但是,如果用户configuration文件正在漫游,RegOpenCurrentUser应该做什么?应该加载吗? 据我可以从这些文档告诉,这两个API提供了线程模拟的用户的HKEY_CURRENT_USER句柄。 因此,他们都“加载”configuration单元,即将其locking为数据库文件,并为registryAPI提供处理。 LoadUserProfile似乎可以像用户login时那样加载用户configuration文件,而RegOpenCurrentUser不会 – 这是正确的吗? 这两个API如何挂载configuration单元有什么根本区别(如果有的话)? 如果发生了什么,会有什么影响和差异(如果有的话) 用户login或注销时,每个模拟手柄已被使用? 当每个匹配closures函数(RegCloseKey和UnloadUserProfile)被调用时,用户已经login了?

批文件FOR / F标记

任何人都可以请解释如何以下代码工作,逐行。 我真的迷路了 我一直在试图学习如何使用FOR命令,但我不明白这一点。 @echo off for /f "tokens=* delims= " %%f in (myfile) do ( set line=%%f call :processToken ) goto :eof :processToken for /f "tokens=1* delims=/" %%a in ("%line%") do ( echo Got one token: %%a set line=%%b ) if not "%line%" == "" goto :processToken goto :eof