代码优先:
ECHO off
SET home = c:\Cygwin\home\ian
SET update_log = %home%\update.txt
^^^^^^
Run Code Online (Sandbox Code Playgroud)
有没有办法在%home%变量的初始化中添加update_log变量,如上例所示?
我试图.cmd从交互式PowerShell会话中运行脚本.我可以调用脚本cmd.exe,但是从PS我得到:
PS C:\path\to\my\script> .\some_script.cmd
Fehler beim Ausführen des Programms "some_script.cmd": Zugriff verweigertIn Zeile:1 Zeichen:1
+ .\some_script.cmd
+ ~~~~~~~~~~~~~~~~~.
In Zeile:1 Zeichen:1
+ .\some_script.cmd
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
Run Code Online (Sandbox Code Playgroud)
(德语部分表示"执行程序时出错...:拒绝访问")
我在VS代码和常规PS提示中尝试了.我拥有相关文件的所有必要访问权限.我知道你必须启用PS脚本的执行,但它不应该像打开.docx文件一样运行.cmd脚本(通过调用默认动词)?我试图Invoke-Item明确地这样做,但得到了同样的错误.我怎样才能运行这个脚本,最好只是.\some_script.cmd没有任何扭曲或包装?
我的情况如下:
我已经在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders文件夹位置下提取了一个注册表值.
问题是代码适用于其中有空格的路径,但如果我对其中没有空格的路径使用相同的代码,则输出错误.
我知道它与之相关,tokens但我希望有一种方法可以使代码适用于这两种情况.
我目前的代码如下:
FOR /F "tokens=2*" %I in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Startup ') DO echo "%J"
Run Code Online (Sandbox Code Playgroud)
和输出:
"%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
Run Code Online (Sandbox Code Playgroud)
在旁注:扩展%USERPROFILE%对我来说没问题,我只是使用CALL函数
现在,当将注册表值的路径更改为Startup其中没有任何空格的内容时,前面提到的代码将失败.
希望有人能够在两种情况下使其工作.
最诚挚的问候,
copyitright
我有一个主批处理文件,它调用多个批处理文件。我希望能够同时执行所有这些批处理文件。完成所有操作后,我需要在主匹配文件中进行进一步的处理。
当我使用“开始”调用多个批处理文件时,能够同时启动所有批处理文件,但是我无法跟踪它们。(主批处理文件认为它们的过程在执行其他批处理文件的那一刻就完成了)。
当我使用“呼叫”时,能够监视批处理文件的过程,但是它将按顺序而不是同时启动批处理文件。
有没有解决的办法?在此PC上具有有限的权限,并尝试仅使用批处理来完成此操作。
主批处理文件
call first.bat
call second.bat
call third.bat
:: echo only after all batch process done
echo done!
Run Code Online (Sandbox Code Playgroud)
蝙蝠
timeout /t 10
Run Code Online (Sandbox Code Playgroud)
蝙蝠
timeout /t 10
Run Code Online (Sandbox Code Playgroud)
蝙蝠
timeout /t 10
Run Code Online (Sandbox Code Playgroud) 与此类似:使用'for'循环迭代目录中的所有文件但是我需要遍历目录中的每个第5个文件?什么是最聪明的方法呢?(不需要是for循环)
这占用了我在批处理脚本中调试的大部分时间:
:: Opens up Chrome
start C:\cygwin64\home\james\code\cs\PolynomialReducer\reports\PolynomialReducer.Tests\index.htm
:: Opens a new command prompt
start "C:\cygwin64\home\james\code\cs\PolynomialReducer\reports\PolynomialReducer.Tests\index.htm"
Run Code Online (Sandbox Code Playgroud)
start如果将参数包装在引号中,为什么/有什么理由命令行为不同?
在遵循有关在批处理脚本中遍历数组的教程时,我没有得到相同的结果:
@echo off
setlocal enabledelayedexpansion
set topic[0] = comments
set topic[1] = variables
set topic[2] = Arrays
set topic[3] = Decision making
set topic[4] = Time and date
set topic[5] = Operators
for /l %%n in (0,1,5) do (
echo !topic[%%n]!
)
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,我得到:
我尝试为我设置的Firebase项目部署一个非常简单的站点,并按照以下步骤操作:
在部署时,我不断收到以下错误消息:
λfirebase部署
!您需要更新CLI身份验证以利用新功能.
!请运行firebase login --reauth
错误:无法授权访问项目[PROJECT NAME]
我成功地运行了firebase login --reauth,我仍然得到了这个.
谁知道我在这里做错了什么?
javascript cmd firebase firebase-hosting firebase-authentication
背景信息(基于我的第一个问题):我想在我的"GUI.exe"(用c#编写)中集成一个帮助功能.然后当我想在我的cmd中启动 - >"GUI.exe --h"的帮助功能.
尝试了stackoverflow-帖子:我尝试使用这个解决方案:在C#控制台应用程序中添加"--help"参数.
static bool ShowHelpRequired(IEnumerable<string> args)
{
return args.Select(s => s.ToLowerInvariant())
.Intersect(new[] { "help", "/?", "--help", "-help", "-h" }).Any();
}
Run Code Online (Sandbox Code Playgroud)
目前的问题:
我不知道在哪里可以集成帮助功能.我不知道我的Microsoft Visual Studio中的特定设置是否必须配置.
提前感谢您的支持.
我搜索了很多,但我找不到正确的答案.
目录:
Project(此文件夹包含delphi代码和名为"RunThis"的文件夹
RunThis
Run.bat代码
start %cd%\RandomApp.exe
pause
Run Code Online (Sandbox Code Playgroud)
Delphi 7(单击按钮执行此代码.)
ShellExecute (application.handle, 'open', 'cmd', PChar('cmd.exe /c RunThis\Run.bat'), nil, SW_MAXIMIZE
Run Code Online (Sandbox Code Playgroud)
如果我没有为目录添加'cmd.exe/c'部分,Delphi将打开一个没有任何代码的cmd.类似于是否必须运行cmd.exe.但是,如果我添加'cmd.exe/c',则它会正确打开Run.bat.
Windows给我这个错误:Windows无法找到'C:\ Project\RunThis\RandomApp.exe'.请确保您正确键入名称,然后再试一次.
有趣的是,如果我只是双击Run.bat,它就会完美无缺.但是,当我通过Delphi打开它时,它给了我这个错误.我想也许Run.bat当前地址有问题.所以不要说:
start RandomApp.exe
Run Code Online (Sandbox Code Playgroud)
我使用了完整的当前目录:
start %cd%\RandomApp.exe
Run Code Online (Sandbox Code Playgroud)
只是补充一下,当我让Delphi 7直接打开程序时,例如:
ShellExecute(Handle, 'open', PChar('RunThis\RandomApp.exe'),null, null, SW_SHOWNORMAL) ;
Run Code Online (Sandbox Code Playgroud)
该程序给了我一个错误,它无法找到"Config.txt".RandomApp.exe使用存储其所有设置的文本文件.
同样,如果我只是单击Run.bat或RandomApp.exe,它们都会完美执行.问题是当我尝试用代码打开它时.我觉得它与目录有关,但我不太清楚.
非常感谢你.
PS:运行Windows 10.
cmd ×10
batch-file ×7
windows ×6
c# ×1
delphi ×1
delphi-7 ×1
firebase ×1
integration ×1
javascript ×1
loops ×1
powershell ×1
shell32 ×1
token ×1