Path “回声”;例如剪裁,添加不需要的换行符

Path “回声”;例如剪裁,添加不需要的换行符,path,cmd,echo,clipboard,image-capture,Path,Cmd,Echo,Clipboard,Image Capture,所以,我使用的是一个图像捕获工具(snagit)。 默认情况下,图像本身保存到剪贴板(捕获后)。 我希望图像的路径存储在剪贴板中 应用程序允许我保存文件,并将图像作为参数传递给外部应用程序。我正在将其传递到以下.vbs文件: Dim Clipboard Set args = WScript.Arguments if args.length > 0 then arg1 = trim(args.Item(0)) else arg1 = "(No Data)" end if S

所以,我使用的是一个图像捕获工具(snagit)。 默认情况下,图像本身保存到剪贴板(捕获后)。 我希望图像的路径存储在剪贴板中

应用程序允许我保存文件,并将图像作为参数传递给外部应用程序。我正在将其传递到以下.vbs文件:

Dim Clipboard
Set args = WScript.Arguments
if args.length > 0 then
    arg1 = trim(args.Item(0))
else
    arg1 = "(No Data)"
end if

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd /C echo "&arg1&" | CLIP", 2
这是我想要的99%,除了我发现“回声…”CLIP'倾向于将formfeed/carries返回字符附加到我的字符串中

我是否可以使用更好的命令(在cmd/vbs中)


提前感谢。

我严重怀疑您的代码是否会在剪贴板上产生
。它应该在最后生成
。这些是Windows上的标准行终止字符。它们由
ECHO
命令自动添加

您可以使用

@echo off
setlocal
set "arg1=%~1"
if not defined arg1 set "arg1=(No Data)"
<nul set /p "=%arg1%"|clip
@if "%~1"=="" (<nul set/p"=(No Data)"|clip) else <nul set/p"=%~1"|clip
Dim args, arg1, objShell
Set args = WScript.Arguments
if args.length > 0 then
  arg1 = trim(args.Item(0))
else
  arg1 = "(No Data)"
end if

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "cmd /C <nul set /p ""="&arg1&""" | CLIP", 2