delayedvariableexpansion

    1熱度

    2回答

    我的Windows批處理文件應該讀取文件名,並創建一個根據文件名的第2至5字母命名的目錄: for %%f in (.\*.txt) do ( set string=%%~nf mkdir %string:~2,5% ) 「字符串的值'雖然沒有更新,即它在循環的每一步中都是相同的。我怎樣才能更新它? 這是CMD輸出: >for %f in (.\*.txt) do ( set strin

    2熱度

    2回答

    我正在面臨批處理腳本中讀取CSV文件內容的問題。我有一系列的文件說My_A_File.csv, My_B_File.csv ... My_Z_File.csv。我面臨的問題是閱讀其中的特殊字符。因此,想要閱讀delayedexpansion關閉的值。 當我用disabledelayedexpansion讀取塊中的值時,它們是空的!我該如何處理? 腳本: @echo off setlocal en

    0熱度

    1回答

    我有一個下載YouTube視頻的批處理文件,如01-title1.m4a,02-title2.m4a等。我無法讓視頻編號n正常工作。如果它是單個數字的數字,我想在前面追加一個零,但我無法讓它工作。 如果我更改FOR的IF線IF %n%==%n:~0,1% SET n=0!n!,它的工作,但隨後只n初始值在比較時使用。然而,當我在IF之前echo !n!==!n:~0,1!時,我得到1==1,2==

    0熱度

    2回答

    在嘗試重用代碼我試圖使用動態變量來測試一個條件,但無法得到我需要的結果。我正在使用延遲擴展。 1 Outside the for loop: 2 set "H_HEADER=FALSE" 3 set "SUB_TRANSTYPE=#" 4 5 Inside the for loop: 6 set "SUB_TRANSTYPE=!FULL_LINE:~0,1!" 7 if !SUB_T

    1熱度

    1回答

    當我在.BAT文件IF語句中使用:子句延遲擴展環境變量時,該行無法解析/執行。使用%符號而不是!爲擴展工程。相同的延遲擴展在其他地方起作用,例如ECHO聲明。例如: @echo off& setlocal enabledelayedexpansion set t=abcd echo !t:~0,2! if %t:~0,2% == ab echo equal if !t:~0,2! == a

    3熱度

    1回答

    我玩弄批處理文件和延遲擴展。 我只是試圖打印目錄中所有項目的文件/文件夾名稱。 @ECHO off SET title=%1 SET mp4="mp4" SET mkv="mkv" SET avi="avi" SET minimumSize=300 CD "E:\Documents\Films\Need_compressing" SETLOCAL ENABLEDELAYEDEXP

    -1熱度

    1回答

    我有: setlocal EnableDelayedExpansion var inLoopVar=hey var first=!inLoopVar! echo %!first!% 此輸出ECHO OFF因爲%!first!%返回爲空。 如何打印「嘿」 更新和澄清: 這裏是我的全部代碼的什麼,我試圖做 @ECHO OFF setlocal EnableDelayedExpansion

    1熱度

    1回答

    在我努力瞭解for..do循環語法及其使用%%變量。我經歷了兩個具體的例子/實現,其中一個for循環不使用DELAYEDEXPANSION,另一個使用DELAYEDEXPANSION和!記號。 1st for循環似乎與Windows XP等較早的操作系統兼容,而2nd for循環示例則不兼容。 具體地說,第一for循環例如從該answer(這是關係到this)和第二for循環例如採取從該answe

    1熱度

    2回答

    Windows CMD shell正在從目錄名稱中去除「!」字符。 假設當前工作目錄爲 「C:\\!MyFolder」 裏面一個.cmd文件我用這個語法: set _STARTPATH=%CD% echo %_STARTPATH% C:\MyFolder顯示沒有爆炸(!) 這是常見的從WinXP到Win8.1。 問:有沒有人知道解決此問題的方法?

    0熱度

    1回答

    我想打印出補丁列表JSON格式這樣: "patches" : { "1" : "KB123456", "2" : "KB123456", ... 但是這就是我得到: "patches" : { "1" : "", "2" : "patch[2]", "3" : "patch[3]", ... 這是我的代碼 @echo off set count1=1 setlocal en