我很难让if语句在for中工作 环。任何帮助将不胜感激。
var remoteComputer = new Uri(String.Format("{0}://{1}:5985/wsman", "HTTP", "ComputerName"));
var connection = new WSManConnectionInfo(remoteComputer, null, TopTest.GetCredential());
var runspace = RunspaceFactory.CreateRunspace(connection);
runspace.Open();
var powershell = PowerShell.Create();
powershell.Runspace = runspace;
powershell.AddScript("$env:ComputerName");
var result = powershell.Invoke();
答案 0 :(得分:0)
我真的不明白为什么不使用"ProjectLoad_Refresh_%today%*.txt"
作为通配符模式而不仅仅使用*.txt
,但这段代码应该有效:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "Today=2017-08-11"
for %%I in (*.txt) do (
set "FileName=%%I"
set "TruncatedName=!FileName:~0,28!"
if "!TruncatedName!" == "ProjectLoad_Refresh_%Today%" set "FileName=!TruncatedName!"
)
endlocal
有一个例外:文件名包含一个或多个感叹号。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
echo /?
endlocal /?
for /?
if /?
set /?
setlocal /?