%%a
和
%%b
值到變量基於
內,但它不工作:無法設置變量從%%值批處理腳本
@ECHO OFF
SETLOCAL
set "path_of_folder=C:\folderA\folderB"
if exist "%path_of_folder%" (
echo Path exists.
for /f "skip=5 tokens=1,2,4 delims= " %%a in (
'dir /ad /tc "%path_of_folder%\."') do IF "%%c"=="." (
set "dt=%%a"
echo Created on: %%a, %%b
set "vara=%%a"
set "varb=%%b"
echo %vara%, %varb%
REM substring
set day=%vara:~0,2%
)
) else (
echo Path does not exist.
)
GOTO :EOF
但echo %vara%, %varb%
的輸出爲空即使之前echo Created on: %%a, %%b
打印正確的信息!這個想法是,我可以在之後操作該變量,例如提取子字符串。
在網上搜索後,我發現這個answer從中我嘗試了setlocal ENABLEDELAYEDEXPANSION
,並用驚歎號的方法,但他們也失敗了。
[更新,包括我的其他的嘗試和使用感嘆號時,部分修復]
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set "path_of_folder=C:\folderA\folderB"
if exist "%path_of_folder%" (
echo Path exists.
for /f "skip=5 tokens=1,2,4 delims= " %%a in (
'dir /ad /tc "%path_of_folder%\."') do IF "%%c"=="." (
set "dt=%%a"
echo Created on: %%a, %%b
set vara=%%a
set varb=%%b
echo !vara!, !varb!
REM substring
set day=%vara:~0,2%
)
) else (
echo Path does not exist.
)
GOTO :EOF
凡vara
和varb
現在被保存並適當地迴應,但現在子不工作..
我嘗試閱讀更多關於%%
變量(link)的具體信息,但這對我也沒有幫助。
任何建議/例如please?
向我們展示你的ENABLEDELAYEDEXPANSION嘗試。 – Anders
@Anders我按照你的要求提供了另一個嘗試,同時還有一個小的修改,用於將變量保存爲應該的形式,但由於以下子字符串嘗試不起作用(即不返回任何內容),所以它們不能「正確」保存。 – Karim